Multinode reconfigurable pipeline computer

Abstract: A multinode parallel-processing computer comprises a plurality of interconnected, large capacity nodes (12) each including a reconfigurable pipeline of functional units such as Integer Arithmetic Logic Processors, Floating Point Arithmetic Processors, Special Purpose Processors, etc.. The reconfigurable pipeline of each node (12) is connected to a multiplane memory (28) by a Memory-Alu Switch NETwork (MASNET) (26). The reconfigurable pipeline conveniently includes three basic substructures formed from functional units which have been found to be suffic­ ient to perform the bulk of all calculations. The MASNET (26) controls the flow of signals from the memory planes (30) to the reconfigurable pipeline (24) and vice versa. The nodes (12) are connectable together by an internode data router (Hyperspace router) so as to form a hypercube configuration. The capability of the nodes (12) to con­ ditionally reconfigure the pipeline (24) at each tick of the clock, without requiring a pipeline flush, permits many powerful algorithms to be implemented directly.

Description: This invention relates to a computer formed of many nodes each of which includes a reconfigurable, many-function ALU pipeline connected to multiple, independent memory planes through a multi-function memory-ALU network switch (MASNET) and the multiple nodes are connected in a hypercube topology. A computer in accordance with the present invention is both a parallel and a pipelined device. The prior art does disclose in certain limited contexts the concept of parallelism and pipelining. See, for example, US-A-4,589,067. However, the internal architecture of the present invention is unique in that it allows for most, if not all, of the computer building blocks being simultaneously active. US-A-4,589 ,067 is typical of prior art devices in that it describes a vector processor based upon a dynamically reconfigurable ALU pipeline. This processor is similar to a single functional unit of the reconfigurable pipeline embodied in a computer in accordance with the present invention. In one sense the pipeline of a node of a device according to the present invention is thus a pipeline of pipelines. Other structures that possibly merit comparison with a device according to the present invention are the Systolic Array by Kung, The MIT Data-Flow Concept and the concept of other parallel architectures. The Systolic Array concept by H.T. Kung of Carnegie Melon University involves data which is "pumped" (i.e. flows) through the computer as "waves". Unlike the present invention, the Systolic Array system is comprised of homogenous building blocks where each building block performs a given operation. In the Systolic Array computer, as data flows through the device, the interconnection between identical building blocks remains fixed during a computation. At best, the configuration cannot be changed until all data is processed by the Systolic Array. In the present invention, by contrast, the interconnection between building blocks can be changed at any time, even when data is passing through the pipeline (i.e. dynamic reconfiguration of interconnects is possible). The present invention is also distinct from the Systolic Array concept in that each building block (i.e. functional unit) of the node pipeline of the present invention can perform a different operation from its neighbours (e.g. functional unit 1 - floating point multiply; functional unit 2 - integer minus; functional unit 3 - logical compare, etc.). In addition, during the course of computation, each building block of a device according to the present invention can assume different functionalities (i.e. reconfiguration of functionality). The MIT Data-Flow computer is comprised of a network of hardware-invoked instructions that may be connected in a pipeline arrangement. The instruction processing is asynchronous to the "data-flow". Each data word is appended with a field of token bits which determines the routing of the data to the appropriate data instruction units. Each instruction unit has a data queue for each operand input. The instruction does not "fire" (i.e. execute) until all operands are present. The present invention includes the concept of data flowing through a pipeline network of hardware functional units that perform operations on data (e.g. they act on instructions that process data). However, by contrast, a device according to the present invention does not function in an asynchronous mode. Instead, data is fetched from memory and is routed by a switch (MASNET) to pipelined instruction units through the centralised control of a very high speed microsequencing unit. This synchronous control sequence is in sharp contrast to the asynchronous distributed data routing invoked by the Data Flow architecture. Moreover, a device according to the present invention, unlike the Data-Flow computer, has no token field (i.e. a data field that guides the data to the appropriate functional unit) nor do the functional units have queues (i.e. buffers that hold operands, instructions, or results). The Data-Flow computer has functional units waiting for data. The present invention has functional units that are continuously active. The control of the pipeline of the present invention is achieved by a central controller, referred to as a microsequencer, whereas the Data-Flow computer uses distributed control. The present invention also has the ability to reconfigure itself based upon internal flow of data using the TAG field, a feature not found in the Data-Flow computer. Furthermore, the Data-Flow computer does not effectively perform series of like or dissimilar computations on continuous streams of data (i.e. a single functional operation on all data flowing through the pipeline). In contrast the present invention performs this operation quite naturally. There are two other principal differences between the parallel architecture of the present invention and other prior art parallel architectures. Firstly, each node of the present invention involves a unique memory/processor design (structure). Other parallel architectures involve existing stand-alone computer architectures augmented for interconnection with neighbouring nodes. Secondly, other general multiple-processors/parallel computers use a central processing unit to oversee and control interprocessor communications so that local processing is suspended during global communications. The nodes of the present invention, by contrast, use an interprocessor router and cache memory which allows for communications without disturbing local processing of data. The following U.S. Patents discuss programmable or reconfigurable pipeline processors: US-A-3,787,673; 3,875,391; 3,978,452; 4,161,036; 4,225,920; 4.228,497; 4,454,489, 4,467,409; and 4,482,953. A useful discussion of the history of both programmable and non-programmable pipeline processors is found in columns 1 to 4 of US-A-4,594,655. In addition, another relevant discussion of the early efforts to microprogram pipeline computers is found in the article entitled PROGRAMMING OF PIPELINED PROCESSORS by Peter M. Kogge from the March 1977 edition of COMPUTER ARCHITECTURE pages 63-69. Lastly, the following U.S. Patents are cited for their general discussion of pipelined processors: US-A-4,051,551; 4,101,960, 4,174,514; 4,244,019; 4,270,181; 4,363,094; 4,438,494; 4,442,498; 4,454,578; 4,491,020; 4,498,134 and 4,507,728. What constitutes the invention is defined in the following claims 1 (in its large multi-node parallel processing computer device format), and 15 (in its individual node substructure). Briefly described, the present invention uses a small number (e.g. 128) of powerful nodes operating concurrently. The individual nodes need not be, but could be, synchronised. By limiting the number of nodes, the total communications and related hardware and software that is required to solve any given problem is kept to a manageable level, while at the same time, using to advantage the gain, speed and capacity that is inherent with concurrency. In addition, the interprocessor communications between nodes of the present invention that do occur, do not interrupt the local processing of data within the node. These features provide for a very efficient means of processing large amounts of data rapidly. Each node of the present invention is comparable in speed and performance to a Class VI supercomputer (e.g. Cray 2 Cyber 205, etc.). Within a given node, a device according to the present invention uses many (e.g. 30) functional units (e.g. floating point arithmetic processors, integer arithmetic/logic processors, special-purpose processors, etc.) organised in a synchronous, dynamically-reconfigurable pipeline such that most, if not all, of the functional units are active during each clock cycle of a given node. This architectural design serves to minimise the storage of intermediate results in memory and assures that the sustained speed of typical calculation is close to the peak speed of the device. This, for example, is not the case with existing Class VI supercomputers where the actual sustained speed for a given computation is much less than the peak speed of the machine. In addition, the invention further provides for flexible and general interconnection between the multiple planes of memory, the dynamically reconfigurable pipeline, and the interprocessor data routers. Each node of a device according to the present invention includes a reconfigurable arthmetic/logic pipeline unit (ALU) and a router means for routing data between said nodes. Desirably each node further comprises an internal memory (e.g. a multiplane memory) and a memory-ALU switch network (MASNET) for routing data between the memory planes and the reconfigurable ALU). Each node desirably also includes a microsequencer and a microcontroller for directing the timing and nature of the computations within each node. Communication between nodes can be controlled by a plurality of hyperspace routers. A front end computer associated with significant off-line mass storage can be employed to provide the input instrucions to the multinode computer. The preferred connection topology of the node is that of a boolean hypercube. The reconfigurable ALU pipeline within each node preferably comprises pipeline processing elements including floating-point processors, integer/logic processors and special-purpose elements. The processing elements are conveniently wired into substructures that are known to appear frequently in many user applications. Three hardwired substructures appear frequently within the reconfigurable ALU pipeline. One substructure comprises a two element unit, another comprises a three-element unit and the last substructure comprises a one-element unit. The three-element substructure is found typically twice as frequently as the two element substructure and the two element substructure is found typically twice as frequently as the one element substructure. The judicious use of these three substructures helps to reduce the complexity of the switching network employed to control the configuration of the ALU pipeline. The invention will be further described, by way of example, by reference to the following drawings, in which:- Figure 1 shows one embodiment of the multinode computer arranged in a two-dimension nearest-neighbour grid which is a subset of a boolean hypercube, Figure 2 is a schematic diagram of an individual node illustrating the memory/MASNET/ALU circuit interconnections, Figure 3 is a schematic diagram illustrating the layout of one memory plane within a single node such as illustrated in Figure 2, Figure 4 illustrates two of the three substructures required in computer apparatus according to the invention, the two substructures illustrated being formed from five arithmetic/logic units as might be found within the reconfigurable ALU pipeline of each node, Figure 5A illustrates a typical ALU pipeline organisation and the switching network (FLONET) which allows for a change in configuration of the substructures, Figure 5B illustrates a preferred embodiment of the interconnection of a FLONET to a grouping of the three common substructures in a reconfigurable ALU pipeline, Figure 6 is a schematic diagram of a 32-register x n-bit, memory/ALU network switch (MASNET) and internode communications unit where the blocks represent six port register files, Figure 7 is a schematic diagram of a 2 x 2 MASNET which illustrates how the input data stream can source two output data streams with a relative shift of "p" elements, and Figure 8 is a schematic diagram of an 8-node hypercube showing the relationship of the hyperspace routers to the MASNET units of each node. During the course of this description, like numbers will be used to identify like elements according to the different Figures which illustrate the invention. The computer 10 according to the preferred embodiment of the invention illustrated in Figure 1, includes a plurality of multiple memory/computational units referred to as nodes 12. The computer 10 is of the parallel-processing variety capable of performing arithmetic and logical operations with high vector and scalar efficiency and speed. Such a device is capable of solving a wide range of computational problems. Each node 12 is connected via a drop-line network 18 to a front end computer 16 that provides a host environment suitable for multi-user program development, multinode initialisation and operation, and off-line data manipulation. The front-end computer 16 is connected to an off-line mass storage unit 20 by an interconnection 22. Each node 12 is also connected to adjacent nodes by internode connections 14. For purposes of clarity and illustration, only twenty-five nodes 12 are illustrated with simple internode links 14 in Figure 1. However, it will be appreciated that the nodes 12 can be connected in a general hypercube configuration and that the invention may comprise fewer or more than one hundred and twenty-eight nodes as the application requires. Rather than interconnect a large number of relatively slow microprocessors, as is done with other prior art parallel computers, the present invention is based on the use of a relatively small number of interconnected, large-capacity, high-speed powerful nodes 12. According to the preferred embodiment of the present invention, the configuration typically consists of between one and one hundred and twenty-eight nodes 12. This approach limits the number of physical and logical internode links 14 between the nodes 12. The preferred connection topology is that of a boolean hypercube. Each of the nodes 12 of the computer 10 is comparable to a Class VI supercomputer in processing speed and capacity. The details of a typical individual node 12 are shown in Figure 2. Each node 12, which is the building block of the computer 10, comprises five basic elements, namely: (1) a reconfigurable ALU pipeline 24 having many (e.g. nine or more) high-performance and special-purpose elements 62, (2) a group 28 of independent memory planes 30, (3) a non-blocking multiple input and multiple-output switching MASNET (Memory/ALU Switch network) 26, (4) a microsequencer 40, (5) a microcontroller 42 and (6) data paths 32 and 34 linking the elements 26 and 28 and data paths 36 and 38 linking the elements 24 and 26. Figure 2 illustrates such a node 12 which includes eight memory planes 30 connected to the reconfigurable pipeline 24 by the memory-ALU network switch (MASNET) 26. As used in this specification the terms "processing elements", "functional unit", "programmable processors" and "building blocks" refer to arithmetic/logic units 62 which comprise either floating point arithmetic processors, integer/arithmetic/logic processors, special-purpose processors or a combination of the foregoing. The microsequencer 40 is connected via lines 46 to the group 28 of memory planes to the MASNET 26 and to the reconfigurable ALU pipeline 24. Similarly, the microcontroller 42 is connected to the same elements via lines 44. The microsequencer 40 governs the clocking of data between and within the various elements and serves to define data pathways and the configuration of the pipeline 24 for each clock tick of the node 12. In a typical operation, a new set of operands is presented to the pipeline 24 and a new set of results is derived from the pipeline 24 on every clock of the node 12. The microsequencer 40 is responsible for the selection of the microcode that defines the configuration of the pipeline 24, the MASNET 26 and the memory planes 30. In a typical operation, the addresses can increase sequentially in each clock period from a specific start address until a specifed end address is reached. The address ramp can be repeated continually until an end-of-computation interrupt flag is issued. The actual memory address used by a given memory plane 30 of the group 28 may differ from the microsequencer 40 address depending upon the addressing mode selected. (See the discussion concerning memory planes given hereafter.) The microcontroller 42, also referred to as a node manager, is used to initialise and provide verification of the various parts of the node 12. For a given computation, after the initial set up, control is passed to the microsequencer 40 which takes over until the computation is complete. In principal, the microcontroller 42 does not need to be active during the time that computations are being performed although in a typical operation the microcontroller 42 would be monitoring the progress of the computation and preparing unused parts of the computer for the next computation. In addition to the five basic elements which constitute a minimal node 12, each node 12 may be expanded to include local mass storage units, graphic processors, pre- and post-processors auxiliary data routers, and the like. Each node 12 is operable in a stand-alone node because the microcontroller/node manager 42 is a stand-alone microcomputer. However, in the normal case the node 12 would be programmed from the front-end computer 16. The layout of a single memory plane 30 is schematically illustrated in Figure 3. Memory planes 30 are of high capacity and are capable of sourcing (reading) or sinking (writing) a data word in a clock of the computer 10. Each memory plane 30 can be enabled for read-only, write-only or read/write operations. The memory planes 30 support three possible addressing modes, namely: (1) direct, (2) translate and (3) computed. With all three modes, the working address is prefetched by a prefetch address register 52 on the previous cycle of the computer 10. In the direct mode, the address from the microsequencer address bus 46 is used to select the memory element of interest. In the translate mode, the microsequencer address is used to look up the actual address in a large memory table of addresses. This large table of addresses is stored in a separate memory unit 50 referred to as the translate memory bank or table. The translate table 50 can be used to generate an arbitrary scan pattern through a main memory bank 54. It can also be used to protect certain designated memory elements from ever being over-written. The computed address mode allows the pipeline 24 to define the address of the next sourced or sinked data word. The reconfigurable pipeline 24 is formed of various processing elements shown as units 62 in Figure 4 and a switch network shown as FLONET 70 in Figures 5A and 5B (FLONET is an abbreviation for Functional and Logical Organization NETwork). Three permanently hardwired substructures or units 63,64 or 66 are connected to the FLONET 70. The FLONET 70 reconfigures the wiring of the pipelined substructures 63, 64 and 66 illustrated collectively as 68 in Figure 5A and 69 in Figure 5B. The specialised reconfigurable interconnection is achieved by electronic switches so that new configurations can be defined within a clock period of the node 12. An example of high-level data processing in a specific situation is shown in Figure 4. The pipeline processing elements include floating-point arithmetic processors (e.g. AMD 29325, Weitek 1032/1033), integer arithmetic/logic units 62 (e.g. AMD 29332), and special-purpose elements such as vector regeneration units and convergence checkers. A useful discussion related to the foregoing special-purpose elements can be found in an article entitled "Two-Dimensional, Non-steady Viscous Flow Simulation on the Navier Stokes Computer MiniNode", J. Sci. Compute, Vol. 1, No. 1 (1986) by D.M. Nosenchuck, M.G. Littman and W. Flannery. Processing elements 62 are wired together in three distinct substructures 63, 64 and 66 that have been found to appear frequently in many user application programs. Two of the most commonly used substructures 64 and 66 are shown by the elements enclosed in broken lines in Figure 4. The substructure 64 comprises three ALU units 62 having four inputs and one output. Two ALU units 62 define Functional Units No. 1 and No. 2 and accept the four inputs in two pairs of twos. The outputs of the Functional Units 1 and 2 form the two inputs to the third ALU unit 62 (Functional Unit No. 4). Each of the three ALU units 62 is capable of performing floating point and integer addition, subtraction, multiplication and division, logical AND, OR, NOT exclusive OR, mask shift and compare functions with a logical register file used to store constants. The substructure 66 comprises two arithmetic/logic units 62 and is adapted to provide three inputs and one output. One of the two arithmetic/logic units 62 (Functional Unit 3) accepts two inputs and produces one output that forms one input to the second arithmetic/logic unit 62 (Functional Unit 5). The other input to Functional Unit 5 comes directly from the outside. The single output of substructure 66 comes from the Functional Unit 5. Accordingly, the substructure 66 comprises a three input and one output device. The third and last most common substructure 63 is an individual arithmetic/logic unit 62 standing alone, i.e. two inputs and one output. Substructures 63, 64 and 66 are permanently hardwired into those respective configurations, however, the reconfiguration among those units is controlled by FLONET 70. A simplified FLONET 70 is schematically represented in Figure 5A. For simplicity, two three-element substructures 64, two two-element substructures 66 and two one-element substructures 63 are shown in Figure 5A. This results in a twelve-functional unit, high-level reconfigurable pipeline 24. Figure 5B illustrates an optimal layout of a FLONET/ALU interconnect. According to the preferred embodiment of the invention , the optimal radio between the three-element substructures 64 and the two element substructures 66 is in the range of 1.5 to 2.0 to 1.0 (1.5-2.0:1). Likewise the optimal ratio between the two element substructures 66 and the single-element substructures 63 is approximately 2 to 1 (2:1). Accordingly, Figure 5B illustrates the optimal scenario which includes eight three-element substructures 64, four two-element substructures 66 and two single-element substructures 63. The number of three element substructures 64 could vary between six and eight according to the embodiment illustrated in Figure 5B. The preferred ratios just described are approximate and might vary slightly from application to application. However, it has been found that the foregoing ratios do provide very close to optimal results. According to the preferred embodiment of the invention the grouping 69 of substructures 63, 64 and 66 in Figure 5B have the functional units, or building blocks, 62 organised in the following manner: each of the three functional units 62 (i.e. programmable processors) in the eight substructures 64 would be floating point processors like the AMD 29325; two of substructures 66 would have each of their two functional units 62 in the form of floating point processors like the AMD 29325 whereas the remaining two substructures 66 would have integer/logic processors like the AMD 29332; lastly one of the remaining single functional units 62 would be a floating point processor like the AMD 29325 and the other remaining single functional unit 62 would be an integer logic processor like the AMD 29332. Alternatively, it is also possible to pair processors to form a hybrid functional unit 62. For example, a floating point processor like the AMD 29325 could be paired in a manner known to those of ordinary skill in the art with an integer logic processor like the AMD 29332 so that the functional unit 62 can alternate between floating point and integer/logic. It is also possible to use a single many-function processor (floating point arithmetic, integer arithmetic/logic) like the Weitek 3332 to activate the same result. The details of a MASNET 26 (Memory Alu Switch NETwork) are shown in detail with sixteen inputs and sixteen outputs in Figure 6. MASNET 26 is made up of register files 72 (e.g. Weitek 1066) that are cross connected in a Benes switching network arrangement and pipelined so as to make the connection of any input to any output non-blocking. The MASNET 26 illustrated in Figure 6 is a sixteen-by-sixteen (16 x 16) circuit. The fact that each register file 72 has local memory also means that by using the MASNET 26 it is possible to reorder data as it flows through the network. This feature can be used, for example, to create two data streams from a common source in which one is delayed with respect to the other by several elements. The formation of multiple data streams from a common source is also a feature of MASNET 26. Figure 7 illustrates more explicitly how a 2 x 2 MASNET (i.e. a single register file 72) can achieve both of these simple tasks. MASNET 26 is used also for internode communications in that it routes data words corresponding to the nodal boundaries to bordering nodes 12 through hyperspace routers 80. This routing is achieved as the data flows through the MASNET 26 without the introduction of any additional delays. Likewise, the hyperspace router 80 of a given node 12 can inject needed boundary point values into the data stream as they are required without the introduction of any delays. A more detailed discussion of internode communications follows. The global topology of the multinode computer 10 is that of a hypercube. The hypercube represents a compromise between the time required for arbitrary internode communications, and the number of physical interconnections between nodes 12. Two addressing modes support internode data communications, namely: (1) global addressed and (2) explicit boundary-point definition, or BPD. Global addressing is simply extended addressing, where an address specifies the node/memory-plane/offset of the data. From a software standpoint, the address is treated as a simple linear address whose range extends across all nodes in the computer 10. Internode communications is handled by software and is entirely transparent to the programmer if default arbitration and communications-lock parameters are chosen. BPD involves the explicit definition of boundary points, their source, and all destination addresses. Whenever BPD data is generated, it is immediately routed to boundary (BDP) caches 82 in the destination nodes 12 as illustrated in Figure 8. Local addressing and BPD may be intermixed. The main advantage of global addressing over BPD is software simplicity, although BPD has the capability of eliminating most internode communications overhead by pre-communicating boundary-point data before they are requested by other nodes. Data is physically routed between nodes 12 using local switching networks attached to each node 12. The local switching networks previously referred to as hyperspace routers 80 are illustrated in Figure 8. Hyperspace routers 80 are non-blocking permutation networks with a topology similar to the Benes network. For a multinode class computer of order d (i.e. NN=2 d , NN=number of nodes), the hyperspace router permits d+1 inputs which include d neighbouring nodes 12 plus one additional input for the host node 12. The data is self-routing in that the destination address, carried with the data, is used to establish hyperspace router switch states. An eight node system is illustrated in Figure 8. In this example, d = 3, and each hyperspace router 80 has a 4 x 4 network with a delay of three minor clocks. For 3 < d < 8 where d is an integer, an 8 x 8 router 80 is required, with d - 7 providing complete switch utilisation. Since the hyperspace router 8 must be configured for 1n₂d = 1 inputs, optimal hardware performance is given by a computer array having the size of NN = 2 2n 2 . n = 0,1,2,3... Configurations of 1, 2, 8...128 nodes fully utilise the hyperspace routers 80. Multinode computer configurations with non-integer 1n₂d are also supported, except the hyperspace router 80 is scaled up to the next integral dimension. The implications of this are not severe, in that aside from the penalty of additional switch hardware, a slightly greater amount of storage is required for the permutation tables. The node stores these tables in a high-speed look-up table. The length of the table is (d+1)! . When the computer grows beyond 128 nodes, the hyperspace router increases to a 16 x 16 switch. Since the look-up tables become prohibitively large, the permutation routing is then accomplished by bit-slice hardware which is somewhat slower than the look-up tables. These considerations have established 128 nodes as the initial, preferred computer configuration. Data transmission between nodes 12 can occur over fibre-optic cables in byte-serial format at a duplex rate of 1 Gbyte/second. This rate provides approximately two orders-of-magnitude head room for occasional burst transmissions and also for future computer expansion. Each node 12 has a 1 Mword boundary-point write-through cache which, in the absence of host-node requests for cache bus cycles is continuously up-dated by the hyperspace router 80. Thus, current boundary data is maintained physically and logically close to the ALU pipeline inputs.

Claims: A multi-node, parallel processing computer device (10) comprising a plurality of nodes (12), each node comprising router means (18) for routing data between said nodes (12), characterized in that each node includes a reconfigurable arthmetic logic (ALU) pipeline unit (24) and, an internal memory (28), a memory/ALU/switch network MASNET (26) for routing data from said internal memory (28) through said MASNET (26) to said reconfigurable ALU pipeline unit (24) and from said reconfigurable ALU pipeline unit (24) through said MASNET (26) to said internal memory (28), each reconfigurable ALU pipeline unit (24) includes at least a first group (64) of three programmable processors (62) permanently connected together in a first configuration, said first group (64) having four inputs and one output, at least a second group (66) of two programmable processors (62) permanently connected together in a second configuration different from said first configuration, said second group (66) having three inputs and one output, at least a third group (63) of individual programmable processor (62), each having two inputs and one output, and an ALU pipeline configuration switching network means FLONET (70) for selectively connecting said first (64) second, (66) and third (63) groups to each other, and sequencer means (40) which serves to define data pathways and the configuration of said reconfigurable arithmetic logic ALU pipeline unit (24), said sequencer means (40) providing instructions to said FLONET once a clock cycle and in that said reconfigurable ALU pipeline unit (24) selectively perform different computations according to instructions from said FLONET (70). A device according to claim 1, characterised in that said first group (64) of programmable processors (62) comprises a first programmable processor (62-Unit 1) having at least two inputs and at least one output, a second processor (62 - Unit 2) having at least two inputs and at least one output, and a third programmable processor (62 - Unit 4) having two inputs permanently connected to the outputs of said first (Unit 1) and said second (Unit 2) programmable processors, said third programmable processor (Unit 4) also having an output, and in that the inputs to said first group (64) comprise the inputs of said first and second programmable processors (Units 1 and 2) and the output of said first group comprises the output of said third programmable processor (Unit 4). A device according to claim 2, characterised in that said second group (66) of programmable processors (62) comprises a fourth programmable processor (62 - Unit 3) having at least two inputs and at least one output, and a fifth programmable processor (62 - Unit 5) having two inputs and one output, one of said inputs of said fifth programmable processor (Unit 5) being permanently connected to the output of said fourth programmable processor (Unit 3), in that the inputs of said second group (66) comprise the two inputs to said fourth programmable processor (Unit 3) and the one input to said fifth programmable processor (Unit 5) not connected to the output of said fourth programmable processor (Unit 3), and in that the output of said second group comprises the output of said fifth programmable processor. A device according to claim 3, characterised in that said further third group of programmable processors (63) comprising individual programmable processors (62) is connected to said FLONET for selective connection with said first (64) and second (66) groups of programmable processors (62). A device according to claim 4, characterised in that the ratio of said first group (64) of programmable processors (62) with respect to said second group (66) of programmable processors (62) in a given reconfigurable ALU pipeline unit (24) is substantially in the range of 1.5 - 2.0 to 1.0. A device according to claim 5, characterised in that the ratio of said second group (66) of programmable processors (62) to said third group (63) of programmable processors (62) is substantially 2.0 to 1.0. A device according to claim 6 or any claim dependent thereon, characterised in that said internal memory (28) comprises a plurality of memory planes (30). A device according to claim 7, characterised in that each memory plane (30) comprises a main memory bank (54), an address multiplexer (48) for transmitting data to and from said main memory bank (54), a prefetch address register (52) connected between said main memory bank (54) and said address multiplexer (48), and a translate table means (50) connected to said address multiplexer (48) for scanning said main memory bank (54) in a random access manner. A device according to any preceding claim, characterised in that said sequencer means further comprises microsequencer means (40) connected to said internal memory, MASNET (26) and reconfigurable ALU pipeline unit (24) for governing the clocking of data between said internal memory (28), MASNET (26) and said reconfigurable ALU pipeline unit (24). A device according to claim 9, characterised in that each node (12) further comprises a microcontroller (42) connected to said internal memory (28), MASNET (26) and said reconfigurable ALU pipeline unit (24) for initialising and verifying the status of said internal memory (28), MASNET (26) and reconfigurable ALU pipeline (24). A device according to claim 10 or any claim dependent thereon, characterised in that said MASNET (26) comprises a plurality of register files (72) cross connected in a Benes switching network arrangement and pipelined so as to make the connection of any input to any output non-blocking. A device according to claim 11, characterised by boundary-point definition (BPD) cache means (82) connected between said router means (80) and said MASNET (26) for routing BPD data to specific destination nodes, and in that said device (10) supports both global addressing and explicit BPD addressing modes. A device according to any preceding claim, characterised by a front end computer (16) for feeding data and instructions to said nodes (12), and an off-line mass storage means (20) connectable to said front end computer (16). A device according to claim 12, characterised in that said nodes (12) are connected together in the topology of a boolean hypercube and vary in number in the range of from one to one hundred and twenty-eight. A reconfigurable computer apparatus (10) including arithmetic/logic pipeline units (ALU) and comprising a first group (64) of programmable pipeline processors (62) permanently connected together in a first configuration having four inputs and one output, said first group (64) of programmable pipeline processors (62) including a first programmable pipeline processor (Unit 1) having at least two inputs and at least one output, a second programmable pipeline processor (Unit 2) having at least two inputs and at least one output, and a third programmable pipeline processor (Unit 4) having two inputs permanently connected to the outputs of said first (Unit 1) and second (Unit 2) programmable processors (62), said third programmable processor (Unit 4) also having an output, such that the four inputs of said first group (64) comprise the inputs of said first (Unit 1) and second (Unit 2) programmable pipeline processors (62) and the output of said first group (64) comprises the output of said third programmable pipeline processor (Unit 4); a second group (66) of programmable pipeline processors (62) permanently connected together in a second configuration different from said first configuration, said second group (66) having three inputs and one output and including a fourth programmable pipeline processor (Unit 3) having two inputs and one output, and a fifth programmable pipeline processor (Unit 5) having two inputs and one output, one of said inputs of said fifth programmable processor (Unit 5) being permanently connected to the output of said fourth programmable processor (Unit 3) such that the three inputs of said second group (66) comprise the two inputs to said fourth (Unit 3) programmable processor (62) and the input to said fifth (Unit 5) programmable processor (62) not connected to the output of said fourth (Unit 3) programmable processor (62), the output of said second group comprising the output of said fifth programmable processor; a third group (63) of programmable pipeline processors comprising individual processors (62) each having two inputs and one output, switching means FLONET (70) for selectively connecting said first (64), second (66) and third (63) groups together, and sequencer means (40) which serves to define data pathways and the configuration of said reconfigurable arithmetic logic ALU pipeline unit (24), said sequencer means (40) providing instructions to said FLONET (70) once a clock cycle, wherein said apparatus (10) selectively performs different computations according to instructions from said FLONET (70). Apparatus according to claim 15, characterised by an internal memory (28), and a memory-ALU switch network means (MASNET) (26) for transferring data from said internal memory (28) through said MASNET (26) to said switching means and for transferring data from said switching means through said MASNET (26) to said internal memory (28). Apparatus according to claim 16, characterised by microsequencer means (40) connected to said internal memory (28), MASNET (26) and switching means for governing the clocking of data between said internal memory (28), MASNET (26) and switching means. Apparatus according to claim 17, characterised by microcontroller means (42) connected to said internal memory (28), MASNET (26) and switching means for initialising and verifying the status of said internal memory (28), MASNET (26) and switching means. Apparatus according to claim 15 or any claim dependent thereon, characterised in that at least some of said processors (62) comprise floating point arithmetic processors. Apparatus according to claim 15, 16, 17 or 18, characterised in that at least some of said processors (62) comprise integer arithmetic logic processors. Apparatus according to claim 15 or any claim dependent thereon, characterised in that the ratio of said first group (64) of programmable processors (62) with respect to said second group (66) of programmable processors (62) is substantially in the range of 1.5 - 2.0 to 1.0. Apparatus according to claim 15, characterised in that the ratio of said second group (66) of programmable processors (62) to said third group (63) of programmable processors (62) is substantially 2.0 to 1.0. Apparatus according to claim 15 including arithmetic/logic pipeline units (ALU) connected together in substructures, characterised in that said apparatus comprises at least a first substructure (64) including three ALU units (62) permanently connected together in the configuration of the first group (64) having four inputs and one output, at least a second substructure (66) including two ALU units permanently connected together in the second configuration of the second group (66) having three inputs and one output, at least a third substructure (63) including at least one individual ALU unit (62) having two inputs and one output, switching means (20) for selectively connecting said first (64), second (66) and third (63) substructure together, and sequencer means for providing instructions to said switching means, wherein said apparatus selectively performs computations according to instructions from said sequencer means.

Inventors: LITTMAN MICHAEL GEIST, NOSENCHUCK DANIEL MARK, LITTMAN, MICHAEL GEIST, NOSENCHUCK, DANIEL MARK
Applicants: UNIV PRINCETON, PRINCETON UNIVERSITY
Application year: 1987
Main classification: G06F15
IPC codes: G06F9, G06F15, G06F7