CA2280057A1 - Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements - Google Patents

Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements Download PDF

Info

Publication number
CA2280057A1
CA2280057A1 CA002280057A CA2280057A CA2280057A1 CA 2280057 A1 CA2280057 A1 CA 2280057A1 CA 002280057 A CA002280057 A CA 002280057A CA 2280057 A CA2280057 A CA 2280057A CA 2280057 A1 CA2280057 A1 CA 2280057A1
Authority
CA
Canada
Prior art keywords
bus
data
node
connection
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002280057A
Other languages
French (fr)
Inventor
Martin Vorbach
Robert Munch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pact Informationstechnologie GmbH
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2280057A1 publication Critical patent/CA2280057A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Abstract

The invention relates to a bus system for DFPs DE 16 88 A1 and to building blocks with two dimensional or multidimensional programmable cell structures (of type FPGA, DPGA or the like), characterized in that a) the bus system comprises a plurality of electrically independent bus segments disconnected by nodes, b) the nodes actively connect or disconnect bus segments, whereby b1) several bus segments are joined and connected by gates to a bus bar located inside the node or b2) connection occurs directly via circuitry elements, drivers and/or registers, c) each node has a routing table where information on the structure of the connection is stored, d) each node has a monitoring unit, which verifies independently if a connection can be established or not.

Description

THIS ~.-PACT07PCT TEXT TR'~~N
INTERNAL BUS SYSTEM FOR DFPS AND UNITS HAVING TWO-DIMENSIONAL
OR MULTIDIMENSIONAL PROGRAMMABLE CELL STRUCTURES FOR HANDLING
LARGE VOLUMES OF DATA INVOLVING COMPLEX INTERCONNECTION.
Background of the Invention Technical field The present invention concerns a bus system for units having cell structures arranged in a plurality of dimensions. The cells may either be FPGA-type cell structures (FPGA = Field Programmable Gate Array) in the known sense or DFP-type arithmetic units (DFP = Data Flow Processor). Connections are set up and cleared automatically during operation, and a pluralitv of cells use the same resources in an alternating manner. Data flow and resource handling are automatically svnchronized.
Related art In systems having two-dimensional or multidimensional programmable FPGAs or DPGAs (DPGA = Dynamically Programmable Gate Arrav):
FPGAs and DPGAs have internal bus systems that are either globally connected to all or a plurality of logic cells, or alternatively have a local next-neighbor connection. The common feature of both types is that: they both involve direct connections between two or a plurality of logic cells. In addition, in all instances one signal can use the bus, unless a multiplexer structure is configured in a plurality of logic cells together with a control. US Patent Application No. A-5,521.837 describes a technology wherein a pluralitv of bus segments can be connected to one another via switch elements (switch boxes, also known as SBXs). Connections are specified by a place and route tool before the unit is programmed and are configured once. Connections cannot be used in an alternating manner by a plurality of different cells.
Furthermore, SBXs have no internal functions for managing-setting up or clearing connections or for s~rnchronization.
Furthermore, there is no automatic synchronisation of the data transfer via these connections.
In DFP-based systems:
DFP-based systems according to German Patent No. 44 16 881 include the same bus systems previously described. In addition, a bus system can be subdivided to create a plurality of partial buses that can be used independently of one another.
Problems The known bus systems are unsuitable for transferring large volumes of data in the form of signals grouped by byte or otherwise. Particularly if the units are being used to calculate algorithms, a large number of data (packets) have to be transferred simultaneously between a given unit's individual configured functional areas. With the known technology, a direct point-to-point connection must be set up for each data path, i.e., connection (bus) between two (or a plurality of) function blocks containing the same data. This connection then exclusively controls data traffic between these specific function blocks. In all instances one data packet can be present on the bus. As a result, highly complex interconnection is required. The speed of known internal buses is limited by the maximum bus width and the signal's propagation delay on the bus. In the technoloQV described in US Patent Application No. A-5.521.837, automatic multiple occupation of resources is not possible, as connections are permanently specified by software before runtime. These units cannot set up and clear connections automatically on demand Moreover, there is no automatic svnchronization of data transfer via dedicated lines It is up to the user to program functionality of this kind. However, automatic synchronization
2 is vital to automatically set-up and clear connections so that one can ensure data is correct and loss-free.
Improvements Achieved by the Invention; Object of the Invention The object of the present invention is to create a bus system that can transfer data between a plurality of function blocks in such a way that a plurality of data packets can be present on the bus simultaneously. The bus system automatically identifies the correct connections for the various different data types or data transmitters and sets up these connections.
The details, advantageous embodiments and features of the bus system according to the invention are the subject of the patent claims.
Description of the Invention Overview of the Invention, Abstract A bus system is described that can be integrated into a unit horizontally, vertically, diagonally or in any position desired.
The bus system is divided into a plurality of segments, and segments are separated by a bus control circuit. This bus control circuit is referred to as the node. The node also handles routing, i.e., it controls the direction in which data flow. Logic cells or PAE cells customary in DFPs are connected to the nodes, and they send and receive their data via the nodes; a target address can be assigned to each data packet.
In addition, the bus system can generate target addresses using lookup tables, referred to below as routing tables. To this end, a method can be used whereby at least one entrv is selected from a table based on events that occur, and a specific receiver can be reconfiaured via this entry (or entries). This method is known from, for example German Patent No. 196 54 846.2-53. The bus systems are particularly suitable for settina up direct connections to the unit's external.,peripheral connectors. Set-up and clearing of
3 connections, and synchronization of data, are carried out automatically. If a connection cannot be set up because the required bus segment is busy at that particular moment, connection set-up is repeated at a later time. Different types of connections can be set up automatically based on different data types or data transmitters.
Detailed Description of the Invention Bus System A plurality of buses are arranged horizontally, vertically, diagonally or in any desired position, on a unit. Individual buses do not extend continuously from one edge of the unit to the other, but rather they are divided into a plurality of bus segments. The bus segments are separated by the nodes described below. Bus segments can be used and interconnected independently of one another, and interconnection is handled by the nodes. A separate protocol managed by the nodes can be implemented on the bus system; it is also feasible for the protocol to be managed by the cells that use the bus, so that the nodes are simply passive switches.
Node A node is used to connect individual bus segments with each other. In addition, nodes handle the task of connecting cells to bus segments.
The bus segments for all directions come together in a node, i.e., - in a two-dimensional system, buses lead to the node from four directions, North (N), South (S), East (E), and West (W) ;
4 - in a three-dimensional system, buses lead to the node from six directions, North (N), South (S), East (E), West (W), Top (T) , and Bottom (B) ;
- in an n-dimensional system, buses lead to the node from n directions (there is a direction vector for each dimension, and the direction vector's plus or minus sign indicates the direction ~ there are two directions for each dimension, and the direction is indicated by the direction vector's plus or minus sign).
Type A Node Within the node there is a bus system to which the external buses are connected and which thus includes a plurality of bus bars. A first external bus is connected to a bus bar via a gate. The bus bar is connected to the second external bus via an additional gate. To allow broadcasting, i.e., sending of data to a plurality of receivers, a plurality of 'second' buses can be connected to the internal bus system. A gate may be a purely passive switch, a bus driver or a register/latch.
Furthermore, the node has access to one (or a plurality of) configurable elements (cells) connected to it. It connects them to one or a plurality of the adjacent bus segments.
Type B Node In contrast to type A nodes, there is no internal bus system.
The node includes n configurable switches which can connect each adjacent segment to any other adjacent segment. For example in two-dimensional structures, n = 6.
N Connection
5 S-W/W-S
6 W-N/N-W

(N = North; E = East; S = South; W = West) A switch may be unidirectional or bidirectional, and may contain a register or latch for storing data.
'Standard' Routing Method A connection is initiated by a data transmitter (DS) - a configurable element (logic cell, bus cell or external connections) - that requires a connection to a data receiver (DR) that also are made up of a configurable element. To this end, the DS communicates its bus request to the node. The first node downstream from a data transmitter is called the initiator node. It obtains the address of the next node required for data transfer from an internal table, as described below.
Provided the node is capable of addressing the first bus segment required - this is always possible if the bus segment AND an internal bus bar of the node are free - it sets up the connection. Otherwise, it rejects the DS's request, and the DS
attempts access again later, or waits and sustains the access request until the node accepts it.
Each subsequent node obtains the address of the next node from its internal table and continues to set up the connection. If the node is unable to set up the connection (either the required bus segment is busy or the bus bar of the node is not free), it can either jump to a wait condition or interrupt set-up and return an error to the initiator node.
Once the connection has been completely set up, the data packets are sent and the transmitter receives the acknowledgement signals for data exchange (Ready/Acknowledg~e protocol). Thus data transfer is automatically synchronized with the data transmitters. If connection set-up fails and has to be repeated later, the data transmitter receives no acknowledge signal, so no data are lost.
Once the connection has been completely set up, it remains quasi-permanent (i.e., it appears to the DS and DR to be a direct connection) until the DS clears the connection by sending a message to the initiator node. It is conceivable to implement a timeout procedure which disconnects an existing connection after a given period of time, particularly if no data transfer has taken place for a fairly long period of time, so that bus segments can be cleared for other connections.
Extended routing method In the aforementioned method for setting up a connection, the addresses are only present on the bus during the set-up phase, and are no longer transferred during data transfer. In the extended routing method for setting up connections, addresses are sent continuously along with the data on separate lines.
There are two addressing schemes:
1. Spatial Coordinates The spatial coordinates of the target are supplied as the addresses. The spatial coordinates are dependent on the selected dimension of the system. For example, a three-dimensional system uses coordinates X/Y/Z, while a two-dimensional system uses X/Y.
In principle, the method will work in systems having any number of dimensions. A direction vector indicating whether 3o the data/connection set-up moves in a positive or a negative direction is assigned to each coordinate.
7 The data moves from the source node in one of the specified directions. When a node is passed, the corresponding direction coordinate is modified in such a way that - in the case of movement in a positive direction 1 is subtracted;
- in the case of movement in a negative direction 1 is added.
The target axis is reached when the coordinate is 0, and the target node is reached when all coordinates are 0.
Depending on the implementation, a complement to two may be generated, and a coordinate may be represented as a negative number (which is added to); alternatively, it is possible to subtract from a positive number. In addition, it is possible to add to a positive number until an overflow is generated, which identifies the target position.
There are two sensible strategies for specifying the direction of movement of data:
a. Static method: Data always moves in the same direction, i.e., the system tries to always maintain the same direction until a change of direction is absolutely necessary. A change of direction is required if the instantaneous direction coordinate is equal to 0, i.e., the target position has been reached.
If the target position of a coordinate is reached, the data is moved in the direction of the coordinates that are not equal to 0. If all coordinates are equal to 0, the data has reached their target node.
b. Dynamic method. The data are moved in any one of the possible directions as desired, and movement is always in the direction specified by the direction vector. Movement 'as desired' here means that the data is always forwarded to the
8 node where there is the least traffic. Thus the system tries to always take the route involving the fewest collisions and blockages. In some cases this method is faster and more suitable for large-scale systems.
2. Address Lookup If lookup addresses are sent, the next node is specified anew in each node, as follows: The entry of the lookup address is read out in the routing tables described below, so that data for the next target is specified. This procedure is the same as in the 'standard' routing method.
The advantage of spatial coordinates is that lookup in a table is not required, which means less management is required. The advantage of address lookup lies in its flexibility and in the fact that the connection can be accurately predicted in advance.
It sometimes makes sense to mix the two methods. In such cases both addresses (spatial coordinates and lookup addresses) must be sent at the same time. If the spatial coordinates are not equal to 0, the data is sent based on the spatial coordinates.
As soon as the spatial coordinates reach 0, a lookup is carried out in the present routing table in place of the lookup address. One can thus be flexible when specifying the segments via which data are sent using the lookup method or the spatial coordinates method.
Bus States in the Extended Routing Method 1. Quasi-permanent A connection may be set up as quasi-permanent in much the same way as in the 'standard' routing method. Each node which a first data item passes is permanently enabled with respect to
9 the addresses assigned to this data item. Enablement is then maintained for all subsequent data until the connection is aborted. Setting up a connection in this way is not absolutely necessary in the extended routing method, but it has two advantages:
i. Data throughput time is reduced considerably.
ii. There are no time losses due to arbitration.
2. Registered This is the normal bus status. First, incoming data is stored temporarily in a register. When the data is written to the register, an acknowledgment signal is sent to the sending node. Data is only written to the register if the latter is empty, i.e., if no data has been written to the register previously, or if data written to it previously has already been sent on. If the register is not empty, the system waits, and an acknowledgment signal is not generated until the register is empty. The registers are arbitrated and the register with the highest priority at the time is sent.
Arbitration and transfer are carried out cyclically with each clock pulse. This method is very suitable in the case of transfer channels along which data from many different sources is to be sent in a non-time-critical manner. This method is known as 'source-optimized.' 3. Segmented A segmented transfer channel includes quasi-permanent and register-oriented nodes. This means the transfer channel is speed-optimized quasi-permanent at some points and source-optimized in others.

Routing Tables The basic component of a node is a routing table.
For an example of routing table structure, please see the exemplary embodiment below:
Gate EALU Bus Entry Propagation Set-Address Delay up in Time Target Table 1 2 3 4 O O R R 1 0 a.-.0 b.-.0 c.-.0 Each line represents a valid connection. A plurality of connections may be active simultaneously; the maximum number of active connections is determined by the number of free internal bus bars and free external bus segments. A monitoring logic circuit, as described below, performs a test to determine whether a newly selected connection can be set up.
Each line is addressed and selected by its binary address. In addition, there are special rows that have no binary address but rather are selected via trigger signals or status signals.
These signals include the following:
~ rRDYl, rRDYh oACKl, oACK2 Bus connections to data receivers (rRDY) are set up automatically in all instances provided the data transmitter cell has valid results. In the case of the oACK signals, the receiver/transmitter sequence is reversed. The data receiver sets up the connection to its data transmitter as soon as the data receiver has processed its operands and is ready to process new operands.

The active gates for the connection in question are entered in the Gate columns. It is possible for just one gate to be marked, and a connection to a configurable element (one or a plurality of cells) can be selected in the EALU columns (e.g-, a connection to a cell's input or output) The internal bus bar used for the connection is selected in the Bus column, the value being binary, so in the table shown a total of four internal bus bars can be used. Internal bus bars do not have to be selected if a priority decoder detects the first free bus bar and assigns it automatically.
The address of the line of the table that controls the node to which a connection is being set up is indicated in the Entry Address in Target Table column. The routing information required for the present connection is present at this address in the next node.
The Propagation De3ay column is optional, and may contain the anticipated signal propagation delay between DS and DR. This information may be used to calculate data throughput or to generate a timeout.
The Set-up Time column is optional. The maximum time for setting up the connection to the next node (or the entire connection from DS to DR) may be indicated here. If this time is exceeded, connection set-up can be aborted via a timeout, thus clearing the bus segments and nodes for other connections. The DS will make a further attempt to set up the connection at a later time.
The entries in the routing table can be configured and reconfigured by a superordinate PLU unit using known methods.
If the 'extended' routing method is used, spatial coordinates must be added to routing tables. In addition, a priority flag must be provided. The priority flag indicates how important a channel is in terms of a unit's performance. The higher the priority flag, the more important the channel. The flag can be set up in three ways:
1. Timeout The flag indicates after how many unused clock cycles the channel is to be interrupted, i.e., after how many cycles a DISCONNECT is generated.
2. Packet size The flag indicates after how many data packets a DISCONNECT is generated.
3. Clock cycles The flag indicates after how many clock cycles a DISCONNECT is generated.
One of the three types can be permanently implemented, or one type can be selected via additional data.
In the example of a routing table shown below, the priority type (shown as 'Prior. Type' in the table below) is evaluated as follows:
Bit Priority Type Combination 00 Timeout O1 Packet size
10 Clock c cles
11 Permanent To indicate 'permanent,' one can also permanently designate a priority flag value 'permanent.' Usually the priority flag's maximum value or 0 are most suitable for this.

Gate EALU Bus Entry Y X Spatial Priori Prior Address Coordinate ty in and Flag Type Target Direction Table Vector 1 2 3 4 O O R R 1 0 k..0 m..0 n..0 1 0 Arbiter An arbiter is connected upstream from the routing table and selects a plurality of signals from the multitude of requests to set up a connection via the routing table. It is advisable to base the arbiter on a known priority logic circuit and a known round-robin arbiter (a round-robin arbiter always assigns the highest priority on a time slice to the next signal, i.e., the signal that presently has the highest priority will subsequently have the lowest priority, and is then assigned higher priority with each subsequent access).
One can use the priority logic circuit to basically assign especially high or low priority to some signals such as rACK
or oRDY. The round-robin arbiter ensures that a connection set-up that has been requested but not yet established is assigned lowest priority, and must wait until all other connection requests have either been set up or checked.
State Machine (Control) The state machine controls internal sequences in nodes. The state machine is divided into two parts:
Control of the node - Control of bus transfer and synchronization State machines can be accessed by the system.

State machines) can be implemented using known methods and are not described in detail here.
Monitoring Unit A monitoring unit is connected downstream from the routing table. It gets the data entered in a line that has been addressed and checks whether the connection to be set up is conceivable. In particular, it checks the following:
~ Is there a free internal bus bar available?
~ Is the gate that has been requested free?
Is the external bus segment that has been requested free?
a) If the results of the check are positive, an ACCEPT signal is generated and sent to the state machines and the unit sending the connection set-up request to indicate successful set-up.
b) If the result of the check are negative, a REJECT signal is generated and sent to the state machines and the unit issuing the connection set-up request to indicate that set-up has failed. The aforementioned arbiter can react to the signal and set the priority of the request to 'lowest priority.' Clearing Connections An existing connection can be cleared based on various criteria. The most important criteria include:
Timeout: Clear a given connection because a longer period has elapsed during which no data was sent. A timeout is easily implemented using a loadable decrementer. When each data item is sent, the counter is loaded anew with a fixed initial value representing the length of time until the timeout. If no data is sent, it counts down one for each bus clock cycle. If it reaches zero, the maximum time period allowed has elapsed and the bus is cleared.
Data counter: A loadable counter is loaded with the number of data items to be sent. For each data transfer, the counter counts down one. If the counter reaches zero, all data has been sent and the bus is cleared.
Synchronization signals: Clearing of buses is controlled by the status signals and/or synchronization signals of the cells) sending the data. For example, if the cells indicate that they have completed data processing or that they can be reconfigured, the bus is cleared, as it is no longer required.
These signals include rRDY and oACK.
Connections are cleared as follows: A signal to clear the connection is sent from the initiator node. Each subsequent node forwards the signal received to its partner nodes) and immediately clears the connection.
In the extended routing method, quasi-permanent buses are either cleared via the RECONFIG synchronization signal or based on the priority flag. If a node detects the end of a connection based on the priority flag, it generates the DISCONNECT signal to clear the bus and forwards it to all other nodes. The nodes react to a DISCONNECT in the same way they react to a RECONFIG. In the case of register-oriented nodes, connections do not have to be cleared, as they are set up dynamically using the incoming data and based on the assigned addresses. After the data has been forwarded, the connection in question is cleared automatically and made available for other transfers.
Broadcasting Bus systems that allow a data packet to be sent to a plurality of receivers and allow transfer of data to be acknowledged are known. This system also works in the case of the method described here. It is a simple matter to connect a plurality of gates to one bus bar. Just one row in the routing table is used. Inevitably, the address within a given target routing table, Entry Address in Target Table, has to be the same in each selected routing table.
To cope with this problem, a plurality of entries can be made available for the Entry Address in Target Table, e.g., there could be a separate Entry Address in Target Table for each gate. Thus each gate would be assigned an address within the target routing table.
Acknowledgment is carried out via signal lines, which use a simple Ready/Acknowledg~e protocol or if necessary an extended more complex protocol; they are driven by an open collector driver; and they terminate at a transistor. To ensure acknowledge signals can be easily implemented in existing chip technologies, acknowledge signals can first be masked in a node, and then subjected to a logic operation. The result of the logic operation is then moved to the next node. For example, if the acknowledge signals are subjected to an AND
operation in all the nodes passed, the result is the same as in the case of an open collector circuit.
Primary Logic Unit (PLU) A primary logic unit according to German Patent Application No. 44 16 881 A1 is connected to the routing table. It is used to configure and reconfigure the routing table. Furthermore, an additional column, which is used to send an acknowledgment to the primary logic unit if the connection indicated in the line in question is set up or cleared, can be added to the routing tables. Thus a column may indicate whether an acknowledgment should be sent to the PLU if the connection in question is set up or cleared, and what type of acknowledgment should be sent. The acknowledgment is sent via a gate which completes a circuit either when the connection is set up or when it is cleared, depending on the setting. The gate also addresses the acknowledgment to the transistors (1502?, which are connected as open collector drivers.
Rest of PLU
the table Message if Message if Binary value of connection is connection is feedback set up cleared b 2 1 0 Brief Description of Diagrams Figure 1 shows a two-dimensional unit having a cell array and nodes.
Figure 2 shows a detail of Figure 1.
Figure 3 shows a plurality of existing bus connections, and new connections being set up.
Figure 4 shows a new bus connections being set up.
Figure 5 shows the next step in setting up the connection.
Figure 6 shows the collision of two buses.
Figure 7 shows the step-by-step clearing of a connection following a collision.

Figure 8 shows the step-by-step clearing of a connection following a collision.
Figure 9 shows the step-by-step clearing of a connection following a collision.
Figure 10 shows the step-by-step clearing of a connection following a collision Figure 11 shows setting up a cleared connection anew after a specific period of time.
Figure 12 shows the continuation of Figure 6 if the node has more than one bus bar, and therefore no collision takes place.
Figure 13 shows bus segments connected to the bus bars of a node.
Figure 14 shows data transfer in the case of connection set-up. Each further sub-figure shows the status of the connection in intervals of one bus cycle.
Figure 15 shows data transfer in the case of connection clearance. Each further sub-figure shows the status of the connection in intervals of one bus cycle.
Figure 16 shows the control unit of a node.
Figure 17 shows broadcasting to a plurality of data receivers.
Figure 18 shows a control unit of a node having collision detectors that has been improved relative to Figure 16.
Figure 19 shows a routing table that has been improved relative to Figure 16 having a control unit shown in Figure 18.
Figure 20 shows bus bars suitable for Figures 18 and 19.
Figure 21 shows broadcasting to a plurality of nodes that has been improved relative to Figure 17.

Figure 22 shows the sequence control for Figures 18-21.
Figure 23 shows a bus node based on the extended routing method.
Figure 24 shows an optimized version of Figure 23.
Figure 25 shows a data register having a synchronization unit.
Figure 26 shows a collision detector based on the extended routing method.
Figure 27 shows the control unit for Figures 23-26.
Figure 28 shows a throughput-boosting, cascadable addition to Figure 27.
Figure 29 shows the control register for Figure 27 (2705).
Figure 30 shows a bus set up using relative spatial coordinates based on the extended routing method.
Figure 31 shows a bus set up using absolute spatial coordinates based on the extended routing method.
Figure 32 shows management of spatial co-ordinates.
Figure 33 shows a segmented bus set-up.
Detailed Description of the Diagrams Figure 1 shows an FPGA-type, DPGA-type or DFP-type (German Patent No. 44 16 881 A1) unit. The unit is symmetrical in two dimensions being made up of configurable cells (0101). 0101 can also represent a plurality of different configurable cells which are grouped together and interconnected with each other.
The nodes of the bus system (0102) are located between the cells. A plurality of nodes is indicated, and in the exemplary embodiment described below they will set up a plurality of connections. As described below, data transmitter A (0103) will set up a connection to data receiver A (0104), and data transmitter B (0106) will set up a connection to data receiver B (0105). An enlarged detail (0107) is shown in Figure 2.
Figure 2 shows a section from a unit of the type described previously. The configurable cells) from Figure 1 (0101) are shown as 0201. A bundled plurality of wires (0203) - the number may be specified as desired and is not shown exactly -connects 0201 to a node 0202. Nodes (0202) are connected with one another via bus segments (0205). In addition, the nodes are connected to the nodes located outside the enlarged detail via bus segments 0206 having the same design as bus segments 0205. The optional bundled wires (0204) indicate that the configurable cells) can also be connected to a plurality of nodes (0202) via a plurality of different bundled wires.
Figure 3 shows the unit during runtime. There is a plurality of connections:
~ Between nodes Z (0301), and ~ Between nodes Y (0306).
Data transmitter A (0302) attempts to set up a connection (0303) to data receiver A (0307). However, the connection is rejected (REJECT), as it is blocked at node Z (0308). At the same time, data transmitter B (0304) sets up a bus segment (0305) to its receiver. This attempt is successful, as the node that is addressed and the required bus segment are not blocked.
Figure 4 shows the next bus cycle. Connections Y and Z have in the meantime been cleared. Data transmitter A (0401) can now set up bus segment (0403), as node (0402) is no longer blocked. At the same time, data transmitter B (0404) extends existing bus segment (0405) beyond node (0406), thus setting up new bus segment (0407) Figure 5 shows the bus set-up started in Figure 3 and continued in Figure 4 is continued in the same manner as in Figure 4.
Figure 6 shows the attempt to set up bus segment connection 0602 from data transmitter B fails. Node 0601 is busy and sends node 0603 a REJECT signal indicating that connection set-up has failed and clears the connection.
Figure 7 shows the complete connection set-up between data transmitter A (0701) and data receiver A (0702). The connection from data transmitter B is cleared further. Node 0703 sends a REJECT signal to node 0705 via bus segment (0704). As a result, segment 0704 is cleared.
Figure 8 shows data transfer between data transmitter A and data receiver A begins. The connection from data transmitter is cleared further. Node 0801 sends a REJECT signal to node 0803 via bus segment (0802). As a result, segment 0802 is cleared.
Figure 9 shows data transfer between data transmitter A and data receiver A continues. The last segment from data transmitter B is cleared. Node 0901 sends a REJECT signal to node 0903 via bus segment (0902). As a result, segment 0902 is cleared.
Figure 10 shows data transfer between data transmitter A and data receiver A continues. Data transmitter B (1001) waits for a given period of time before making a further attempt to set up a connection to its data receiver.
Figure 11 shows the status several bus cycles later: Data transfer between data transmitter A and data receiver A is still continuing. Data transmitter B (1101) starts a new attempt to set up the connection to its data receiver. It sets up a bus segment (1102) to node (1103). Provided the connection from data transmitter A to its data receiver A is cleared in the next bus cycles, connection set-up from data transmitter B (1101) will be successful. Otherwise it will fail again in the manner described in Figure 6.
Figure 12 shows the continuation of Figure 6 if node 1202 is able to set up more than one connection, i.e., if the node has a plurality of internal bus bars. If so, the connection from data transmitter A will be processed via the first bus bar and the connection from data transmitter B via the second. Node 1202 sets up bus segment 1203 to data receiver B (1201).
Figure 13 shows a node-internal interconnection structure.
There are four node-internal bus bars 1301, 1302, 1303 and 1304. The bus bars are connected to bus segments West (1318), North (1316), East (1319), and South (1317) via a group of gates (1308, 1309, 1310, 1311). The bus bars are connected with O-REG1/2 (1314, 1315) via gates 1307. The R-REG is connected to the bus bars via gates 1306. The lower-order R-REG and the higher-order R-REG (1312, 1313) can be connected separately. Gates are controlled via bus 1320. The gate system (West, North, East, South) required and the internal bus bar required are indicated in this way. The gate (1321, 1322, 1323, 1324) required is selected by ANDing (1325, 1326, 1327, 1328) the data of the direction with the data of the selected bus bar.
Figure 14a shows the setting up of a connection. Data transmitter (1401) sends the first data packet to the node of the data transmitter (1402).
Figure 14b shows the node selects the entry associated with rRDY - rRDY is a status signal that indicates that data is ready at the data transmitter - from the routing table. Based on this entry, the next bus segment is set up and the address of the routing table of the next node is sent.
Figure 14c shows the last node (1403), the data receiver node, receives the address for the entry within its routing table.

The entry does not indicate a further node, but rather a cell.
As a result, the node immediately activates its gates to the selected cell.
Figure 14d shows the data is moved directly to receiver cell 1404 via the activated gate of 1403.
Figure 14e shows the cell returns the oACK signal to acknowledge that the data has been received. The data transmitter will send the next data packet in the next bus cycle (see Figure 14e).
Figure 14 e-g show normal exchange of data between the cells takes place.
Figure 15a shows a data connection from the data transmitter (1501) to the data receiver (1503) via a plurality of nodes exists.
Figure 15b shows the data transmitter (1501) has ended its data transfer and sends a DISCONNECT signal to the first node.
Figure 15c shows the first bus segment is cleared and the node forwards the DISCONNECT.
Figure 15d shows clearing of the connection continues.
Figure 15d shows the last node receives the DISCONNECT. As a result, the last node simultaneously clears the connection to the preceding node and to the data receiver.
Figure 15e shows the last bus segment and the connection to the data receiver has been cleared.
Figure 15f shows a clearing method in which the DISCONNECT
line is looped through all the nodes. Thus the DISCONNECT is propagated in one clock cycle, and all segments are cleared simultaneously.
Figure 15g shows same as Figure 15e.

Figure 16 shows the control unit of a node. Requests (1601) to set up a connection are sent to routing table (1603) via priority decoder (1602). The priority decoder selects the request with the highest priority, and a request that fails as a result is assigned lowest priority. The priority logic unit receives its requests via status signals (e. g., status signals rRDY and oACK from the configurable cells) or via bus segments 1316, 1317, 1318, 1319. If data is present on the bus segments without the gate of the bus segment in question having been activated, the priority logic unit interprets the data as an address of the routing table and treats it as a request. If status signals are present at the priority logic unit (rRDY, oACK), they are translated into addresses for the routing table. The addresses of the routing table select an entry. The data of entry (1604) is forwarded to an AND-gate unit (1605).
The binary number of the bus selection (BUS 1..0) is translated into select signals via a 2:4 decoder (1606). The AND-gate unit ANDS each signal with the same signal stored in a latch (1607), i.e., signal GATE1 of the routing table is ANDed with signal GATE1 in the latch, signal GATE2 of the routing table is ANDed with signal GATE2 in the latch, etc.
The signals in the latch represent the status of the present interconnection structure, i.e., the gates used and the bus bars used are entered in the latch. If, when a connection request is ANDed with the present status, the result is a true level, this means the new connection request requires resources presently in use. All AND gates are combined in a logic operation using an OR gate (1608). If the output of the OR gate is a true level, the connection request is rejected (REJECT) (1609), as the necessary resources are busy. The ACCEPT signal (1611) is generated from the REJECT signal using an inverter (1610). The signals are forwarded to a state machine (1612) which can be implemented using known methods.
The state machine controls whether the connection is accepted or rejected. If the connection request is rejected, the state machine communicates (1613) the REJECT to the priority decoder and the request is assigned lowest priority. If the request is accepted, the new status signals are ORed (1614) with the present status signals downstream from the latch - the OR unit has the same design as AND unit (1605) described previously -and written back to latch (1607). The state machine controls, via 1623, whether OR unit (1614) or mask (1616) is active .
The latch is triggered by the state machine via 1622. The new setting reaches the gates via bus 1615.
Bus connections are cleared in a similar manner. However, the REJECT signal must occur when resources are checked, as the l0 bus connection to be cleared has to exist. Based on the REJECT, state machine 1612 activates mask (1616) instead of OR
unit 1614. The connection data of the connection to be cleared are masked out of the present interconnection status and written back to latch 1607. Before the new connection data is written, the state machine sends the DISCONNECT signal for clearing the connection to the next node.
The control unit can access bus bars 1301, 1302, 1303, 1304 directly via gates 1617, 1618, 1619, 1620. The state machine can send control signals (DISCONNECT) to a given bus bar, and can also receive control signals from the bus bar (REJECT, ACCEPT) and react to them. In addition, these gates are used to send the Entry Address in Target Table (via 1621) to the given bus bar.
The primary logic unit (PLU) can access the routing table via 1624.
Figure 17 shows how data transmitter (1701) broadcasts to a plurality of data receivers (1702) via a plurality of nodes (1707), which will not be discussed further here. For purposes of clarity, the bus is shown as divided into acknowledgement line (ACK) (1703) and the rest of the bus (1704). ACK is negated and sent to the open collector bus driver, which also performs an invert. ACK is pulled to H via pullup resistor 1705. Due to the structure of the circuit, the following cases may arise:

~ If the bus in question is not activated, L is present at the base of transistor (1706). As a result it does not place a load on the bus.
~ If the bus in question is activated and the signal is not acknowledged, H is present at the base of transistor (1706).
This means the bus is pulled to L. If a result is sent to a plurality of data receivers using broadcasting, all nodes that have not yet acknowledged the result data and require wait cycles pull the bus to L.
~ If the bus in question is activated and the signal is acknowledged, L is present at the base of transistor (1706).
This means no load is placed on the bus. If a result is sent to a plurality of data receivers using broadcasting, all nodes that have acknowledged the result data and do not require wait cycles do not place a load on the bus.
Because in its basic status the bus is at the H level, i.e., acknowledgment, non-acknowledgment per Case 2 overrides acknowledgment by pulling the bus to L. The bus does not go to the H level, i.e., to acknowledgment status, until all nodes involved in a connection send an acknowledgment. This therefore constitutes a wired AND circuit.
Below, we provide an example of implementation for a node having the following bus structure:
Data Data si nals ACK Data handshake and set-a handshake RDY Data handshake (data is resent) ESTABLISH Set-a handshake (se ment is being set a ) DISCONNECT Re est to clear bus (via a timeout) RECONFIG Request to clear bus (by reconfiguring the confi urable cells involved) Figure 18: Control unit of the bus bars shown in Figure 13. By contrast with the solution described above, in which a bus bar is preassigned in routing tables, the logic system finds a free bus bar itself and allocates it.
A control unit 1801 is assigned to each bus bar. A control unit consists of one gate (1801a) in order to send the address information of the routing table to the bus bar of a connected node during connection set-up, and a register (1801b) that controls the bus bar. Via bus 1813, 1801 receives data from the circuit described in Figure 19, which is connected to the routing table. The gates that have access to the assigned bus bar in question are enabled via 1801b. Each gate has an enable signal to which an entry in 1801b is assigned. If no entry is set, the assigned bus bar is not busy and may be freely assigned to any access request. Checking is implemented via an OR function (1802) applied to all enable signals to the gates.
The results of 1802 of all bus bars are sent to an arbiter (1803), which selects one of the free bus bars and addresses its 1801 via an address bus (1804). If no bus bar is free, 1803 communicates this to the controlling state machine via 1805. Each entry in 1801b indicates one gate assigned to the bus bar. The position is the same in every 1801b, i.e., the enable signal for gate p is always located at position p of an 1801b, the enable signal for gate p+1 is always located at position p+1, and the enable signal for gate q is always located at position q. If an OR function is applied to the enable signals of a gate p, the results indicate whether or not gate p is free. There is a checking function of this kind for each gate (1807 = gate p+1, 1808, 1809 = gate q). All gates that are irrelevant to the present connection set-up are masked via mask 1810, i.e., the mask forwards all irrelevant gates as 'not enabled.' An OR function (1811) is used to determine whether one of the gates is enabled. As all irrelevant gates are marked 'not enabled', only the status of the gate required for the present connection set-up is forwarded (1812) to the state machine. If the desired gate is enabled, it cannot be used for the present connection set-up, as this would result in a collision. The connection set-up is interrupted and either rejected or attempted again at a later time.
Figure 19 shows the arbiter for selecting the active bus, and the routing table. Each bus connected to a node (2004, 2005, 2006) sends its access request via a signal (1901) to an arbiter (1902), which selects one of the access requests.
Multiplexer (1904) is controlled by a decoder (1903) in such a way that either the number of the selected access (in the case of direct access by a configurable cell) (1905) or the lookup address of the selected access is sent to routing table 1906.
1906 outputs the data assigned to the value of 1905. The lookup address for the next node is sent to 1801a directly via 1813. The address of the next node is decoded into decimal (1907) via a collator (1908) which is usually configured with OR gates and sent to 1801b via bus 1813. If the bus to the next node has been set up, enabling of the gate to the preceding node is made possible in that the address of the preceding node decoded via decimal decoder 1909 is connected to bus 1813 in collator 1908 and sent to 1801b.
Figure 20 shows bus bars (2001, 2002, 2003) for connecting the buses that are present (2004, 2005, 2006). The buses are connected to the bus bars via multiplexer/demultiplexer (2007) based on control via 1801b; the output signals p of all 1801bs are sent to multiplexer p; the output signals p+1 of all 1801bs are sent to multiplexer p+1, etc. The individual signals represent bus bars that are present, as each bus bar control unit controls exactly one (p) of a plurality of signals (pX, px + 1, . . , qX) . If a signal associated with a bus bar control unit is set, the corresponding bus bar is connected via a 2007.
Timeout generators (2008) control clearing of the segment in question and the connected buses. The timeout generators are configured directly by routing table (1906). The connection has been omitted from the diagrams for the sake of simplicity.

The 1801as assigned to a given bus bar are connected to that bus bar.
Figure 21 shows how a bus segment (2105) is broadcast to a plurality of nodes (2102, 2103, 2104) via a node (2101). The RDY handshake is sent directly to each receiver in the same manner as the data. The returning ACK handshakes are connected to OR gate (2107) and AND gate (2108) via masks (2105, 2106) .
The masks select which ACK is significant, and whether an ACK
is forwarded via a Boolean AND function or via an OR function.
The two functions are combined via an OR gate (2109). If an ACK is irrelevant, mask 2105 forwards a logical 0 (L level), while mask 2106 forwards a logical 1 (H level). Masks 2105 and 2106 are set separately by the routing table. The connection has been omitted from the diagrams for the sake of simplicity.
Figure 22 shows the state machine of the circuit described The basic status is 'IDLE,' which the state machine does not leave until a 'request' (access) occurs AND a bus bar AND the selected gate are free. The state machine sends an acknowledgment of the bus set-up to the preceding state machine by sending an ACK handshake. The state machine goes into SEND status, during which the data of the routing table are sent (via 1801a) to the next routing table. The state machine only leaves this status when an ACK handshake of the next routing table arrives OR when a 'disconnect' signal arrives on the bus (e.g., via a timeout). In the case of a 'disconnect', the state machine goes into DISCONNECT status in order to clear the bus (this status is not absolutely necessary; in the implementation, it jumps back directly to IDLE; however, in this example it is included for greater clarity). When an ACK handshake arrives, it jumps back to IDLE
status, and the gate of the preceding routing table in 1801b is enabled via 1909/1908. To boost the performance of the routing table, waiting for an ACK handshake during SEND status can be left out. To this end, during SEND the access data to be sent to the next routing table must be stored in 1801a, i.e., 1801a is a register; at the same time the information regarding the preceding routing table must be written to an additional 1801b during SEND. In independently structured logic, arrival of the ACK handshake of the subsequent routing table causes disconnection of 1801a and switchover from the first 1801b to the second, and the connections of the gate of the preceding routing table are stored.
Remaining diagrams: An example of implementation based on the 'extended' routing method. The bus looks like this:
Data Data si nals ACK Data handshake and set-up handshake RDY Data handshake (data is resent) DISCONNECT Re uest to clear bus (via a timeout) RECONFIG Request to clear bus (by reconfiguring the confi urable cells involved) X/Y X Y s atial coordinates LUT Looku address for routing table ADR-MODE Indicates whether X/Y spatial coordinates or lookup address is to be used. If X=0 AND Y=0, the lookup address is used automaticall Figure 23 shows a node having switch elements 1, 2, 3, 4, 5, 6 and buses B1, B2, B3, B4.
Figure 23a: For purposes of clarity, a single-line system is shown, whereas in fact a bus system is involved. All diagrams should therefore be expanded to reflect the number of bus lines. In the most straightforward case, the switch elements are made up of a transistor (2301).
Figure 23b: To allow temporary storage of data, the switch element is expanded by one register (2302). Bidirectional buses Bn and Bm are connected to the register via transistors T1, T2, T3, T4 in such a way that either transition Bm -> Bn or transition Bn -> Bm is stored. Alternatively data transfer may be bidirectional with no storage, via T5. The switch element's mode is set via control signals S1, S2, S3, S4 as follows:
S1 Bm -> Bn (unidirectional, stored) S2 Bm <-> (bidirectional, non-stored) S3 Bn <-> Bm (bidirectional, non-stored) S4 Bn -> Bm (unidirectional, stored) Figure 23c: Input Schmitt triggers and output drivers (2303) are used to ensure better signal quality. Drivers (2303) are designed so that either the output driver or the input driver can be enabled via a control signal based on the level.
Bidirectionality is no longer feasible; only unidirectional switch procedures can be carried out.
The switch element's mode is set via control signals S1, S2, S3, S4 as follows:
S1 Bm -> Bn (unidirectional, stored) S2 Bm -> Bn (unidirectional, non-stored) S3 Bn -> Bm (unidirectional, non-stored) S4 Bn -> Bm (unidirectional, stored) Figure 23d: The inputs and outputs run on different lines (Bmi, Bmo, Bni, Bno), to allow greater ease of implementation in chips. Drivers (2304) are unidirectional. There is no need for the drivers to be activated.
S1 Bmi -> Bno (unidirectional, stored) S2 Bm -> Bno (unidirectional, non-stored) S3 Bni -> Bmo (unidirectional, non-stored) S4 Bni -> Bmo (unidirectional, stored) Figure 24: A node similar to the node shown in Figure 23. This node has the following advantage: The node is easier to implement, and it makes it easier to manage the register. For purposes of clarity, a single-line system is shown, whereas in fact a bus system is involved. All diagrams should therefore be expanded to reflect the number of bus lines.
The registers and drivers (A, B, C, D) are arranged upstream from switch elements (1, 2, 3, 4, 5) 6). The switch elements can be reduced to the cross-type arrangement shown in Figure 24a. Using control lines S5, S6, the inputs (Imi, Ini) are selectively connected to outputs (Imo, Ino) via transistors T6, T7.
Figures 24b-d show various embodiments of the registers and drivers (A, B, C, D) .
Figure 24b: A bidirectional bus is connected either as input to register 2401 via T8 or as output via T9 with node-internal bus Imo as the signal source. T8 and T9 are activated via control line S7. Using transistor pair T10/T11, which are activated via S8, a register bypass can be connected to allow a quasi-permanent mode. The output of the register goes to node-internal bus Imi. Interconnection of Imi and Imo is carried out via the switch elements shown in Figure 24a.
Figure 24c: To improve signal quality to the bus, driver (2402) is connected instead of transistor pair T8/T9.
Figure 24d: The external bus is unidirectional, which makes it easier to implement in chips. Drivers 2403 are unidirectional, and control signal S7 is not required.
Figure 25 shows a possible synchronization circuit for Figure 24. Registers 2401 for storing data is shown as 2501. Register 2502 is used to store an RDY handshake signal, i.e., the information indicating that valid data is present on the bus or in 2501. If there is no valid data in 2501, output Q of 2502 is a logical 0. If valid data arrives (RDY is active and a logical 1), an enable signal (EN) for registers 2501 and 2502 is generated via AND gate 2503, and the data and the RDY
are stored using the rising clock pulse edge. The input of 2503 for Q (of 2502) is inverting! If further data arrives, output (Q) of 2502 is a logical 1. The AND gate supplies a logical 0 and the registers are not enabled via EN. If the data is forwarded via the bus, the activation signal of output driver (OE) is used as 'Clear' for 2502; Q of 2502 becomes a logical 0, and new data can be stored at the next clock cycle.
Line Din and Dout is shown in bold, as in this case a bus system is involved. 2501 is also shown in bold, as the register matches the width of the bus.
The registers may be designed as latches and coupled to the level of the clock (CLK) or handshake (RDY). However, this means the circuit will behave asynchronously, which can cause significant problems in implementation, and is likely to involve substantial extra cost.
Figure 26 shows the testing method for determining whether a connection can be set up, i.e., whether the network is free.
The status information of switch elements 1, 2, 3, 4, 5, 6 that indicates whether a switch element is connected or free is arranged in matrix 2603. 90° switch elements 3, 4, 5, 6 form the corners; 180° switch elements 1 and 2 form the middle parts and occur twice. To ensure that a switch element can be used in a collision-free manner, the entire edge on which it is located must be free. For example, 1+2, 6+4 and 3+5 may be used. By contrast, 6+2, 6+1, 2+5, 2+4, 2+3, etc. cannot be used.
One must therefore ensure that and test whether each edge is occupied just once. The data for this is supplied via input r by register 2602, in which the present interconnection of nodes is stored, and by routing table 2601, which forwards the data of the desired new bus to the matrix via input t.
The test circuit is shown in Figure 26a. A given row (2605, 2606, 2607, 2608) is tested for the existence of a connection via an OR gate (2609, 2610, 2611, 2612). If a connected element exists in the row, the OR gate in question supplies a logical 1. The result of the row in question is ANDed with any connection to be newly set up present in the row. If the row is already occupied AND a further connection is being requested in the row, the AND gate in question supplies a logical 1. The outputs of all AND gates are OR-ed (2613). Thus the result of the test supplies a logical 0 to 2604 if the required connection is valid and a logical 1 if a collision is present.
The circuit in Figure 26 can only process one request per time unit. A time-optimized version is shown in Figure 27. The access requests are moved from the buses to the circuit via 2701. The routing table (2702) includes a plurality of individual registers (2711) rather than a known memory. As a result, the data of all access requests can be read out simultaneously from the routine table via multiplexer 2703.
The data of each access request is sent to a given matrix (2704) of the kind shown in Figure 26, which receives comparison data from the register containing the present interconnection of nodes (2705). Circuit 2706 includes an OR
gate which determines whether a valid request to matrix 2704 is present. The result of 2704 is ANDed with the output of the OR gate via an inverter. In the case of an existing and valid access, the result is a logical 1; otherwise a logical 0 is supplied. Each matrix has its own circuit 2706. The results of these matrices are connected to arbiter 2707, which selects one of the valid accesses. Multiplexer 2708 is connected so that the data of the valid access is sent to collator 2709 which merges the valid new access and the existing connection and forwards them to register 2705 to be stored.
This circuit can select one valid access out of four accesses.
A valid access can be processed from any desired number of accesses by changing the number of multiplexers (2703) and matrices (2704), the width of the arbiter and of the multiplexer (2707, 2708), and modifying the associated logic circuits.

It is often necessary to select more than one valid access from a number of accesses. Lines 2801, 2805, 2802 and 2810, which lead to the additional circuit shown in Figure 28 and allow two accesses to be selected simultaneously, are used for this. If 2810 is connected, line 2710 is left out. Any desired number of accesses can be selected simultaneously based on the cascading principle described below.
The information regarding which access was selected as 'valid' is sent to decoder 2803 via 2801. The information is decoded in such a way that that only the access data of the non-selected accesses is sent to the matrices via the three multiplexers 2804. As the access that has already been selected is not sent, the number of matrices decreases by one.
The decoder works in the manner shown in the table below:
Decoder MUX1 MUX2 MUX3 (2802) a b c d b a c d c a b d d a b c ~

The 'valid' bus selected via 2802 is indicated in the 'Decoder' column in the table. The MUX1-MUX3 columns indicate which bus the multiplexer in question selects based on value 2802.
Matrices (2811), logic circuit (2806) and arbiter (2807) work in the manner described in Figure 27. The data of the access selected by the arbiter is sent to collator 2809 via multiplexer 2808. The collator adds the data of the access selected by the logic circuit shown in Figure 28 to the output data of 2709 in the same manner as collator 2709 and sends the access data that has been generated to register 2705 via 2810.
The input data of multiplexer 2808 must be taken from the outputs of multiplexers 2804, due to the connections in those multiplexers.

The circuit shown in Figure 28 can be further cascaded to a deeper level according to the principle just described; the number of matrices will decrease by one for each cascade.
Figure 29 shows register 2602 or 2705. The outputs of collator 2709 or 2809 are sent as input data to the register via 9201.
A given register bank 2902a/b manages one of the buses (B1, B2, .. Bm) of the node. The control circuit of the node is stored in part a of a given bank. The timeout of the bus connection is defined in part b. Part b includes a loadable counter whose enable and reload are selected via multiplexer 2903, which can be set by part a.
Timeout Effect princi le BUS-ACK Data transfers are counted.

(Bus in use/ acket size) !BUS-ACK Clock pulses with no (inverted) data transfer are counted. (Bus NOT in use/timeout) en Each clock pulse is counted/clock c cles - No timeout ermanent The reload and enable signals of the counter are generated as follows:
Timeout rinci le reload (rld) enable (en) BUS-ACK never in the case of data transfer !BUS-ACK (inverted) in the case of data with no data transfer transfer en never continuously - never never The register required for a reload of the counter that contains the counter status originally set is contained in 2902b. 2904 tests for counter status 0 to determine the timeout. 2904 is shown in the diagram as an aid to comprehension only; in implementation, the carry signal (ripple-carry) of the counter is used. The carry deletes the contents of 2902a, which then forwards the status information 'bus free' and thus clears the bus. From the carry, BUS-DISCONNECT is connected to the bus as a signal and used to clear the remaining bus segment. BUS-RECONF is sent along with the data, and also clears the bus if it occurs. Both signals are sent to 2902 via OR gate 2905 and cause the register and counter to be cleared. The timeout is deactivated when the enable signal is deactivated in accordance with the table shown above and the counter is loaded with a value greater than 0.
The data in the register is bus-oriented, not switch-element-oriented. This data is sent to collator 2709 and 2809 via 2906. Each control signal occurs m times (number of buses) and is indicated using the notation S;,m, where m stands for the bus and i for the number of switch elements. Before the data is sent to a matrix of the kind shown in Figure 26 or to a node as shown in Figures 23/24, it must be represented such that there is only one series Ti_ The representation rule is 2 5 thus Ti = ( Si, l U Si, 2 U Si, 3 V . . . V Si,m) , in other words al l Si) 1 to Si,mare ORed. 2907 handles this function and sends T to the matrices and switch elements via 2908.
Figure 30 shows an example of two bus connections. A node 3002 is assigned to configurable elements or groups of configurable elements (3001). Node 3003 sends data to node 3004; connection set-up is static. Node 3005 sends data to target node 3008 on a dynamic basis; segments 3006 and 3007 are occupied, so that the direction of movement changes in each case. The X/Y
spatial co-ordinates are indicated in the nodes that are passed. Depending on the direction of movement, the coordinates are left the same, or incremented or decremented by one. The direction of movement and the target can be determined based on the numerical value of the coordinates.
Deviation of direction of movement is calculated from position (A, B, C, D) of the incoming bus on the node and the plus or minus sign of the X/Y movement. Compass points are used for designation purposes: y is the North-South axis, and x the East-West axis:
Direction of movement Movement as expressed in com ass oints y = 0 x > 0 ~ E
x < 0 ~ W

Y > 0 N

< 0 S

x = 0 y > 0 ~ N
y < 0 ~ S

x > 0 E

x < 0 W

The direction of movement and the compass point of the incoming bus are used as the basis for calculating which of the switch elements (l, 2, 3, 4, 5, 6) is addressed. Both 2o aforementioned calculations are very straightforward, so the processing unit required (XY2ADR) can be designed as, for example, lookup tables. The calculation is not discussed in greater detail here, instead, reference is made to the above table.
Addressing in this example is relative.
Figure 31 shows the same example, but in this case with absolute coordinates. In contrast to Figure 30, the coordinates are not calculated in the nodes, but rather are compared with the coordinates of the nodes in accordance with superordinate coordinate system 3101. Connection set-up is controlled based on the comparisons greater than (>), less than (<) and equal to (_). If both coordinates (X and Y) are equal to the coordinates of the node, the target has been reached. If one coordinate is equal to the coordinate of the node, the target axis of the coordinate has been reached.
The examples shown in Figures 30 and 31 do not allow any deviation from the optimal direction. For example, if segment 3009 in Figure 30 were occupied, it would be impossible to send the data any further. In cases where a segment is occupied, one can allow deviation from the specified direction. This would mean the connection could be set up via 3010. However, the allowance for a possible deviation has to be limited, to keep unreasonable routing attempts from being made. +/-1 to +/-2 is a sensible limit for deviations from the specified direction.
Figures 32a and 32b show the periphery needed around a node 3201 used to evaluate or modify the spatial coordinates.
Figure 32a shows relative coordinates that have been modified based on the direction of movement. In the case of movement in the positive direction, subtraction is performed (3203); in the case of movement in the negative direction, addition is performed (3202). Comparators (3204) test whether a coordinate has reached 0.
Figure 32b compares absolute coordinates with the coordinates of the node via comparator 3205. To allow deviation from the specified direction, comparators 3205 and 3204 are extended so that they check and forward the information indicating whether a coordinate is within the deviation range (-deviation <
coordinate < deviation). Based on this information, the processing unit (XY2ADR) can modify the direction of movement within the permitted deviation boundaries in the case of a collision of the specified direction and allow or prevent a deviation. This calculation is also very straightforward and if necessary can be carried out by extending the lookup tables. In the table below, the maximum permitted deviation is shown as A:
Direction Movement as expressed in of compass points movement y - A 0 x + A 0 ~ E
= > 0 ~ W
x - A
<

y + A 0 N
>

y - A 0 S
<

x - A 0 y + A 0 ~ N
= > 0 ~ S
y - A
<

x + A 0 E
>

x - A O W
<

x and y thus become fuzzy, i.e., movements in opposing compass-point directions may become permissible, as k - A < 0 AND k + A > 0 may be true simultaneously. If desired, one can restrict this by stipulating that movement in the direction opposite to the sign of k is not permitted. If k = 0, all directions of movement are permitted.
Figure 33 shows the behavior of a segmented bus. The structure of the diagram is the same as that of the earlier diagram.
Transmitter node Sa sends data to receiver node Ea; further transmitter node Sb sends data to Eb, and last node Sc sends data to Ec, which is also the receiver node Eb. Thus collisions occur at segments 3301 and 3302. To allow optimal use of the bus (aside from the fact that in principle a different route is conceivable), all buses are set up as quasi-permanent, with the exception of segments 3301 and 3302.
These segments function in 'registered' mode and arbitrate the buses present based on their respective assigned timeouts. The priority of a bus can be determined via its timeout. A
relevant bus is assigned generous 'timeout rights,' i.e., long cycles, whereas an irrelevant bus only has short cycles at its disposal.
For the sake of simplicity, Figures 23-27 only show node interconnections in the four compass-point directions. In fact, a configurable cell or group of configurable cells has to be connected in each node as well. The extensions for this are shown in Figure 34. The designations in Figure 34a match those in Figure 23, and those in Figure 34b match those in Figure 24; the connection of the configurable elements is shown as Z. Matrix 2603 should be changed to 3401, as shown in Figure 34c. Connections are modified based on Figure 26.
For ease of comprehension, the examples shown are two-dimensional systems. Complex multidimensional systems may also be constructed as desired based on the methods described.

_ CA 02280057 1999-08-10 Glossary Address lookup: The address in not calculated but rather is generated by being "looked up" in a memory.
ALU: Arithmetic-logic unit. Basic unit for processing data.
The unit can carry out arithmetical operations such as addition, subtraction and also in some cases multiplication, division, series expansion etc. The unit may be designed as an integer unit or a floating-point unit. The unit can also carry out logic operations such as AND and OR and can perform comparisons.
Arbiter: Unit for distributing rights among signals.
Bidirectional: Data transfer in both directions (source/target 1 <-> source/target 2).
Broadcast: To send data of a PAE to a plurality or all data receivers.
Bus bar: Bus to which a plurality of bus segments are connected.
Bus request: Request to set up a bus connection for transferring data. (See also Connection request.) Bus segment: Section of a bus system between two nodes.
Bus status: Manner in which a bus functions. There are two main states:
Quasi-permanent: The bus behaves like a continuous line. The bus can only be used by one data packet (until it is cleared).
Registered: A register that delays the data by one clock cycle is looped in between each segment. With each clock cycle (depending on the timeout) a different data packet can be arbitrated.
If the two statuses are mixed, the resulting status is termed 'Segmented.' This status combines the advantages of the two ~ ~3 types.
Cells: Synonym for configurable elements.
Collator: Unit for combining a plurality of signals based on specific mapping rules.
a) Usually a logic operation (AND/OR) is carried out, or b) the signals are combined into one bus, and possibly c) a plurality of signal sources are selectively combined via a plurality of multiplexers.
Configurable cell: See Logic cells.
Configurable element: A configurable element is a unit of a logic unit that one can set to perform a special function using a configuration word. Configurable elements therefore include all types of RAM cells, multiplexers, arithmetic-logic units, registers and all types of internal and external interconnection description.
Configure: Set functionality and interconnection of a logical unit, FPGA cell or PAE (See also Reconfigure).
Connection request: Request to set up a bus connection for data transfer. (See also Bus request).
Data receiver: The units) that subjects) the results of the PAE to further processing.
Data transmitter: The units) that makes) data available as operands for the PAE.
Data type: Type of data: Signs, numbers, floating-point numbers, signals (Boolean), etc.
Decimal decoder: Changes a binary signal into a decimal signal.
~ 44 DFP: Data Flow Processor according to German Patent/
Offenlegungsschrift No. 44 16 881.
DISCONNECT: Signal generated by timeout counters/generators that clears a bus. Sent to all nodes of a bus.
DPGA: Dynamically configurable FPGA. Known art.
EALU: Expanded arithmetic-logic unit. ALU that is extended so that it can perform special functions required for or useful for operating a data processing unit according to German Patent No. 441 16 881 Al (counters in particular).
Elements: Collective terms for any type of self-contained unit that can be used as a component in an electronic unit. The following are considered elements:
~ Configurable cells of any type ~ Clusters ~ RAM blocks ~ Logic circuits ~ Arithmetic processing units ~ Registers ~ Multiplexers I/O pins of a chip Enable: Enable a register or counter.
FPGA: Programmable logic unit. Known art.
Gate: Switch that forwards or blocks a signal. Compare: Relay.
H leve3: Logical 1 level; depends on the technology used.
Latch: Storage element that usually forwards a signal transparently during the H level and stores it during the L

level. In PAEs, there are some latches for which the level function is exactly the opposite way. In such cases, an inverter is connected in series with the clock pulse of a known latch.
L level: Logical 0 level; depends on the technology used.
Logic cells: Configurable cells used in the case of DFPs, FPGAs and DPGAs that carry out simple logical or arithmetic tasks based on their configuration.
Logic gate: Group of transistors that carry out a basic logic function. Basic functions include NAND, NOR, and transmission gates.
Lookup table (LUT): Table that receives a value as the address and returns a result. For example, a number is indicated as the address and its sine is returned.
Mask: Bit combination that indicates which signals of a source are to be forwarded and which to be interrupted (masked).
M-PLUREG: Register in which the interconnection of the PAE is set. This register is written by the PLU.
Node: Element that connects a plurality of bus segments to each other, actively controls connection set-up and is passive during data transfer.
Open collector: Circuit system in which the collector of a transistor is connected to a bus signal that is pulled to H
level via a pullup. The emitter of the transistor is connected to ground. If the transistor switches, the bus signal is pulled to L level. The advantage of the method is as follows:
A plurality of transistors of this kind can be used to control the bus so that there are no electrical collisions. The signals are ORed, which means the circuit constitutes a wired OR circuit.

PAE: Processing Array Element: EALU having 0-REG, R-REG, R20-MUX, F-PLUREG, M-PLUREG, BM-, SM-, Sync, StateBack- and Power-UNIT.
Partner node: Node with which a given node or bus segment has contact or wishes to set up contact.
PLU (Primary Logic Unit): Unit for configuring and reconfiguring the PAE. Includes a special micro-controller that is specially tailored to its tasks.
Priority decoder: The signal with the highest priority is forwarded or enabled.
Priority flag: Indicates the priority level (high to low) of a bus connection.
Priority logic: The signal with the highest priority is forwarded or enabled.
Priority type: Basis on which a priority flag is evaluated.
PulIDown: Resistor that pulls a bus line to an L level.
PullUp: Resistor that pulls a bus line to an H level.
RECONFIG: Signal generated by configurable elements that indicates whether the elements can be reconfigured and have ended their activity. It is used to clear all buses involved and is forwarded to all nodes of a bus.
Reconfigure: Reconfigure any desired number of PAEs, while any desired number of remaining PAEs continue to carry out their own functions (See also Configure).
Register bank: A plurality of different registers of different sizes and functions combined in a group.
Register bypass: Line for bypassing a register. This disconnects the register s synchronization effect.
RELOAD: Reload a counter with its original value.
Routing table: Table within a node containing information about connections to be set up.
Round-robin arbiter: Arbiter that enables one signal after another in sequence. The presently enabled signal is assigned lowest priority and, as the last in the chain, is enabled once again. The arbiter works in a circle.
Schmitt trigger: Window comparator that assigns exactly one of two values to a signal via hysteresis and thus improves signal quality.
Set-up phase: Cycle during which a bus segment is set up.
Source-optimized: Bus system that is mostly registered and is set up with low priorities to ensure that as many data transmitters (sources) as possible have access to the bus.
Spatial coordinates: Specification of points using a multidimensional coordinate system. Absolute coordinates (exact address of a point) or relative coordinates (relative distance from a point of origin) can be used. In the case of movement in a positive direction, the numerical value of a coordinate increases; in the case of movement in a negative direction, the numerical value of a coordinate decreases.
Speed-optimized: Bus system that is generally. set up as quasi-permament, has a high priority and is not influenced by other accesses.
State machine: Logic unit that can be in various different statuses. The transitions from one status to another are dependant on various input parameters. These machines are used to control complex functions and are related art.

Switching table: A switching table is a loop memory that is triggered via a control unit. The entries of a switching table may contain any desired configuration words. The control unit can carry out commands. The switching table reacts to trigger signals and reconfigures configurable elements based on an entry in a loop memory.
Target axis: The X/Y axis on which X=0 lies or X = axis, or on which Y=0 lies or Y = axis, is the target axis of X or Y.
Timeout: Something happens (a procedure is started or interrupted) after a specific period of time elapses.
Timeout counter: See Timeout generator.
Timeout generator: Unit for generating a timeout based on various criteria such as:
~ Clock cycles in which no connection was set up ~ Data packets sent ~ Clock cycles ~ Clock cycles in which no data was sent Unidirectional: Data transfer in one direction (Source ->
Target) Designation conventions:
Unit -UNIT

Mode -MODE

Multiplexer -MUX

Negated signal not-Register for PLU is -PLUREG

visible Register is internal -REG

Shift register -sft Function conventions:
NOT function !
I Q

AND function &
A B Q

~1 1 1 OR function #~ >-A B Q

~1 1 1 GATE function G
EN B Q

~1 0 0 5~, ~O

1 1 1~
x.51 Key to diagrams:
Ersatzblatt (Regel 26) Substitute sheet (Rule 26) R (= Receiver)

Claims (34)

Claims
1. Bus system for connecting individual cells or groups of cells in DFPs according to German Patent Application No. 44 16 881 A1, and units having two-dimensional or multidimensional programmable cell structures, the bus system being made up of a plurality of bus segments that are electrically independent of one another and are separated via nodes, characterized in that a) the nodes connect or disconnect bus segments automatically and during data processing (Figures 26-29), either a1) to achieve connection, a plurality of bus segments are connected via gates to a bus bar located within the node (Figure 20), or a2) they are connected directly via switch elements (Figure 23), drivers and/or registers, b) each node has a lookup table (2601) in which the information regarding setting up of connections is stored, c) each node has a monitoring unit 2603 which automatically checks whether or not a connection can be set up, sets up an appropriate, feasible connection or delays data transfer until such a connection can be set up.
2. Bus system according to Patent Claim 1, characterized in that a bus connection is set up in a step-by-step manner, and data transmitter (0401) first sets up only the connection to the node connected to it (0402), and the node then determines from its routing table which of its adjacent nodes is required for the connection and sets up a connection to that node via the connecting bus segment provided that segment is not already busy with another connection; if it is busy, bus connection set-up is interrupted or suspended; if not, the addressed node continues to set up the bus connection (Figures 4-12).
3. Bus system according to Patent Claim 1, characterized in that a bus segment for transferring a data packet is set up, and the data transmitter first sets up only the connection to the node connected to it, and the node then determines from its routing table which of its adjacent nodes is required for the connection and forwards the data via that bus segment provided it is not already busy with another connection; if it is busy, bus connection set-up is suspended; if not, the data is stored in the adjacent node (2302. 2401 and Figure 25) and the new data is accepted (Figure 33).
4. Bus system according to Patent Claims 1 to 3, characterized in that the addresses of the data or of a connection are translated (2709) into the addresses of the next node in the lookup table (2601) of a node.
5. Bus system according to Patent Claims 1 to 3, characterized in that the addresses of the data or of the connections are calculated in the processing unit of a node in such a way that either the address of the next node is calculated (Figure 32) or the addresses of the next node are generated via lookup table (2601).
6. Bus system according to Patent Claims 1 to 5, characterized in that if a connection set up fails a further attempt is made at a later time (Figure 11).
7. Bus system according to Patent Claims 1 to 6, characterized in that after a connection set-up has been carried out the nodes are passive and data transfer is controlled exclusively by the data transmitter and the data receiver (Figure 14).
8. Bus system according to Patent Claims 1 to 6, characterized in that a node transfers the data to the next node by itself (Figure 33) and handles synchronization automatically (Figure 25).
9. Bus system according to Patent Claims 1 to 8, characterized in that the data transmitter and the data receiver have no knowledge regarding the bus system either during connection set-up or during operation and do not actively affect the nodes (Figures 30-31).
10. Bus system according to Patent Claims 1 to 9, characterized in that the node and the routing tables are configured and reconfigured by a primary logic unit (1624).
11. Bus system according to Patent Claims 1 to 10, characterized in that a node can send data to a plurality of other nodes simultaneously (broadcasting), and the synchronization signals of the receiving nodes can be subjected to Boolean logic operations based on settings and returned to the transmitter node via masks based on settings (Figure 21).
12. Method for transferring data between individual cells in DFPs according to German Patent Application No. 44 16 881 A1, and units having two-dimensional or multidimensional programmable cell structures (FPGA-type, DPGA-type or similar), wherein the data is sent in segments in a multidimensional bus system and the segments can be connected as desired, characterized in that data transfer is synchronized automatically and independently by the nodes (Figure 22, Figure 25).
13. Method according to Claim 12, characterized in that the segments of the buses can be permanently connected to create a continuous undelayed bus system (Figure 14).
14. Method according to Claim 12, characterized in that the segments of the buses are delayed and arbitrated via registers (3301, 3302).
15. Method according to Claims 12 to 14, characterized in that both connection methods according to Claims 13 and 14 are used in one connection.
16. Method according to Claims 12 to 15, characterized in that setting-up of a bus is controlled by lookup tables (2601) in which connection data is stored, and the entry of the next table is referenced in each lookup table.
17. Method according to Claims 12 to 15, characterized in that a bus is set up by supplying an unambiguous calculable relative or absolute address of the target (Figure 30).
18. Method according to Claims 12 to 15 and 17, characterized in that a set-up direction that is present is changed when the target axis is reached (Figure 31).
19. Method according to Claims 12 to 15 and 17, characterized in that a set-up direction that is present is changed as soon as a blockage occurs in the set-up direction that is present (Figure 31).
20. Method according to Claims 12 to 15 and 19, characterized in that set-up cannot occur in the direction opposite to set-up and beyond the target axis (Figures 30-31).
21. Method according to Claims 12 to 15 and 17, characterized in that set-up can occur in the direction opposite to set-up and beyond the target axis provided the deviation is within a predefined interval (Figure 32).
22. Method according to Claims 12 to 21, characterized in that both set-up methods according to Claims 16 and 17 occur in one connection.
23. Method according to Claims 12 to 22, characterized in that if a plurality of requests occur at a node (3301, 3302) the requests are arbitrated.
24. Method according to claim Claims 12 to 23, characterized in that a plurality of requests occur a plurality of requests can be processed simultaneously (Figure 27).
25. Method according to Claims 12 to 24, characterized in that data is sent by a bus segment to a next node and the next node acknowledges the data (Figure 14).
26. Method according to Claims 12 to 24 characterized in that data is sent via a bus segment to a plurality of next nodes and the next nodes acknowledge the data, and the acknowledge signals are subjected to Boolean logic operations as desired (Figure 21).
27. Method according to Claims 12 to 24 and 26, characterized in that data is sent to a plurality of next nodes by a bus segment and the next nodes acknowledge the data, and a mask for masking individual acknowledge signals is present (Figure 21) .
28. Method according to Claims 12 to 26 characterized in that both transfer methods according to Claims 25 and 26 occur in one connection.
31. Method according to Claims 12 to 28, characterized in that an existing bus is cleared based on a disconnect signal (Figure 22) which is sent to all nodes involved (Figure 15f).
30. Method according to Claims 12 to 29, characterized in that a disconnect signal based on a timeout is generated by one or a plurality of nodes and sent to all nodes involved (Figure 15f ) .
31. Method according to Claims 12 to 30, characterized in that in a timeout occurs based on a period of time in which no data was sent (See 'Timeout generator' in Glossary).
32. Method according to Claims 12 to 30, characterized in that a timeout occurs based on the volume of data sent (See 'Timeout generator' in Glossary) .
33. Method according to Claims 12 to 30, characterized in that a timeout is not possible.
34. Method according to Claims 13 to 33, characterized in that the timeout method used for each bus segment is selected selectively according to Claims 31 to 33.
CA002280057A 1997-02-11 1998-02-11 Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements Abandoned CA2280057A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19704742A DE19704742A1 (en) 1997-02-11 1997-02-11 Internal bus system for DFPs, as well as modules with two- or multi-dimensional programmable cell structures, for coping with large amounts of data with high networking effort
DE19704742.4 1997-02-11
PCT/DE1998/000456 WO1998035294A2 (en) 1997-02-11 1998-02-11 Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements

Publications (1)

Publication Number Publication Date
CA2280057A1 true CA2280057A1 (en) 1998-08-13

Family

ID=7819649

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002280057A Abandoned CA2280057A1 (en) 1997-02-11 1998-02-11 Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements

Country Status (8)

Country Link
US (2) US6405299B1 (en)
EP (2) EP0960374B1 (en)
JP (1) JP3894957B2 (en)
AT (1) ATE256888T1 (en)
AU (1) AU6392498A (en)
CA (1) CA2280057A1 (en)
DE (3) DE19704742A1 (en)
WO (1) WO1998035294A2 (en)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (en) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like
DE19654595A1 (en) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654846A1 (en) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
JP3961028B2 (en) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Data flow processor (DFP) automatic dynamic unloading method and modules with 2D or 3D programmable cell structure (FPGA, DPGA, etc.)
DE19704728A1 (en) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Method for self-synchronization of configurable elements of a programmable module
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (en) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internal bus system for DFPs, as well as modules with two- or multi-dimensional programmable cell structures, for coping with large amounts of data with high networking effort
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (en) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Repairing integrated circuits by replacing subassemblies with substitutes
CN1378665A (en) 1999-06-10 2002-11-06 Pact信息技术有限公司 Programming concept
JP2004506261A (en) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Pipeline CT protocol and CT communication
US6636924B1 (en) * 2000-08-17 2003-10-21 Koninklijke Philips Electronics N.V. Multiple port I2C hub
ATE460020T1 (en) 2000-09-13 2010-03-15 Stratosaudio Inc SYSTEM AND METHOD FOR ORDERING AND PROVIDING MEDIA CONTENT, USING ADDITIONAL DATA TRANSMITTED IN A BROADCAST SIGNAL
ATE437476T1 (en) * 2000-10-06 2009-08-15 Pact Xpp Technologies Ag CELL ARRANGEMENT WITH SEGMENTED INTERCELL STRUCTURE
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6624056B2 (en) * 2000-12-04 2003-09-23 Pts Corporation Methods and apparatus for providing improved physical designs and routing with reduced capacitive power dissipation
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
ATE478381T1 (en) * 2001-06-20 2010-09-15 Richter Thomas DATA PROCESSING PROCEDURES
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
WO2003060747A2 (en) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurable processor
WO2003067814A2 (en) * 2002-02-01 2003-08-14 California Institute Of Technology Hardware-assisted fast router
WO2003071432A2 (en) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
DE10243322B4 (en) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analog reconfigurable data processing device
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US7620678B1 (en) 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7461234B2 (en) * 2002-07-01 2008-12-02 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US6816809B2 (en) * 2002-07-23 2004-11-09 Hewlett-Packard Development Company, L.P. Hardware based utilization metering
WO2004021176A2 (en) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7210112B2 (en) 2002-08-21 2007-04-24 California Institute Of Technology Element placement method and apparatus
WO2004038599A1 (en) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7502915B2 (en) * 2002-09-30 2009-03-10 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
US8949576B2 (en) * 2002-11-01 2015-02-03 Nvidia Corporation Arithmetic node including general digital signal processing functions for an adaptive computing machine
US7617100B1 (en) 2003-01-10 2009-11-10 Nvidia Corporation Method and system for providing an excitation-pattern based audio coding scheme
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies
US7917130B1 (en) 2003-03-21 2011-03-29 Stratosaudio, Inc. Broadcast response method and system
US7285487B2 (en) 2003-07-24 2007-10-23 California Institute Of Technology Method and apparatus for network with multilayer metalization
US8296764B2 (en) * 2003-08-14 2012-10-23 Nvidia Corporation Internal synchronization control for adaptive integrated circuitry
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7622951B2 (en) * 2004-02-14 2009-11-24 Tabula, Inc. Via programmable gate array with offset direct connections
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7284222B1 (en) * 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US8130825B2 (en) * 2004-05-10 2012-03-06 Nvidia Corporation Processor for video data encoding/decoding
US8018463B2 (en) * 2004-05-10 2011-09-13 Nvidia Corporation Processor for video data
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
TWI256013B (en) * 2004-10-12 2006-06-01 Uli Electronics Inc Sound-effect processing circuit
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7259587B1 (en) * 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7330050B2 (en) * 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7236009B1 (en) * 2004-12-01 2007-06-26 Andre Rohe Operational time extension
DE102005005484A1 (en) * 2005-02-04 2006-08-10 Deutsche Thomson-Brandt Gmbh Network station and computer program product which can be loaded into the internal memory of a network station
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7392446B1 (en) * 2005-06-17 2008-06-24 Xilinx, Inc. Test channel usage reduction
US7548085B2 (en) * 2005-07-15 2009-06-16 Tabula, Inc. Random access of user design states in a configurable IC
US7375550B1 (en) 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7262633B1 (en) 2005-11-11 2007-08-28 Tabula, Inc. Via programmable gate array with offset bit lines
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
DE102005059522A1 (en) * 2005-12-13 2007-06-14 Siemens Ag Communication system of a motor vehicle and method for establishing a wireless ad hoc wireless network
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US7694083B1 (en) * 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7797497B1 (en) * 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
DE102006012275B4 (en) * 2006-03-15 2007-12-20 Phoenix Contact Gmbh & Co. Kg Data transmission and processing system with secure detection of critical conditions
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7999820B1 (en) 2006-10-23 2011-08-16 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US20080111923A1 (en) * 2006-11-09 2008-05-15 Scheuermann W James Processor for video data
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
EP2140548A4 (en) * 2007-03-20 2010-06-09 Tabula Inc Configurable ic having a routing fabric with storage elements
US7610566B1 (en) 2007-03-22 2009-10-27 Tabula, Inc. Method and apparatus for function decomposition
US8169789B1 (en) 2007-04-10 2012-05-01 Nvidia Corporation Graphics processing unit stiffening frame
US7987065B1 (en) 2007-04-17 2011-07-26 Nvidia Corporation Automatic quality testing of multimedia rendering by software drivers
US8572598B1 (en) 2007-04-18 2013-10-29 Nvidia Corporation Method and system for upgrading software in a computing device
US8726283B1 (en) 2007-06-04 2014-05-13 Nvidia Corporation Deadlock avoidance skid buffer
US7944453B1 (en) 2007-06-07 2011-05-17 Nvidia Corporation Extrapolation texture filtering for nonresident mipmaps
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US7839162B2 (en) * 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US7652498B2 (en) * 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US7595655B2 (en) * 2007-06-27 2009-09-29 Tabula, Inc. Retrieving data from a configurable IC
US7501855B2 (en) 2007-06-27 2009-03-10 Tabula, Inc Transport network for a configurable IC
US7579867B2 (en) * 2007-06-27 2009-08-25 Tabula Inc. Restructuring data from a trace buffer of a configurable IC
US8344755B2 (en) * 2007-09-06 2013-01-01 Tabula, Inc. Configuration context switcher
US8990651B2 (en) * 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US8631448B2 (en) 2007-12-14 2014-01-14 Stratosaudio, Inc. Systems and methods for scheduling interactive media and events
US20090177736A1 (en) * 2007-12-14 2009-07-09 Christensen Kelly M Systems and methods for outputting updated media
US8166081B2 (en) 2008-02-05 2012-04-24 Stratosaudio, Inc. System and method for advertisement transmission and display
EP2250749A2 (en) 2008-02-05 2010-11-17 StratosAudio, Inc. Systems, methods, and devices for scanning broadcasts
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
JP5110433B2 (en) * 2008-03-18 2012-12-26 公立大学法人高知工科大学 Data-driven information processing device
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US9122809B2 (en) * 2008-07-01 2015-09-01 Hewlett-Packard Development Company, L.P. Segmenting bus topology
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
US8674721B2 (en) 2008-09-17 2014-03-18 Tabula, Inc. Controllable storage elements for an IC
US7877897B2 (en) * 2008-12-16 2011-02-01 Skechers U.S.A., Inc. Ii Shoe
EP2441005A2 (en) 2009-06-09 2012-04-18 Martin Vorbach System and method for a cache in a multi-core processor
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
EP2553815A1 (en) 2010-04-02 2013-02-06 Tabula, Inc. System and method for reducing reconfiguration power usage
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US20150012903A1 (en) 2013-07-04 2015-01-08 Tabula, Inc. Non-intrusive monitoring and control of integrated circuits
WO2018193354A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Wavelet representation for accelerated deep learning
GB2580165B (en) * 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay
US11089140B2 (en) 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including generic encapsulation mode
US11689386B2 (en) 2019-08-01 2023-06-27 Vulcan Technologies International Inc. Intelligent controller and sensor network bus, system and method for controlling and operating an automated machine including a failover mechanism for multi-core architectures
US11156987B2 (en) 2019-08-01 2021-10-26 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11809163B2 (en) 2019-08-01 2023-11-07 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11086810B2 (en) 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture
US10841230B1 (en) * 2019-08-01 2020-11-17 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method
US11269795B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a link media expansion and conversion mechanism
US11263157B2 (en) 2019-08-01 2022-03-01 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a dynamic bandwidth allocation mechanism
US11258538B2 (en) 2019-08-01 2022-02-22 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including an error avoidance and correction mechanism
US11269316B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including smart compliant actuator module
US11327771B1 (en) * 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor

Family Cites Families (215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2067477A (en) * 1931-03-20 1937-01-12 Allis Chalmers Mfg Co Gearing
GB971191A (en) * 1962-05-28 1964-09-30 Wolf Electric Tools Ltd Improvements relating to electrically driven equipment
GB1253309A (en) * 1969-11-21 1971-11-10 Marconi Co Ltd Improvements in or relating to data processing arrangements
DE2057312A1 (en) * 1970-11-21 1972-05-25 Bhs Bayerische Berg Planetary gear with load pressure compensation
US3855577A (en) * 1973-06-11 1974-12-17 Texas Instruments Inc Power saving circuit for calculator system
DE2943433A1 (en) 1979-10-26 1981-05-07 Bayer Ag, 5090 Leverkusen METHOD FOR PRODUCING CARBONIC ACID HALOGENIDES
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
JPS58151661A (en) * 1982-03-04 1983-09-08 Omron Tateisi Electronics Co Memory device
US4498172A (en) * 1982-07-26 1985-02-05 General Electric Company System for polynomial division self-testing of digital networks
JPS5936857A (en) * 1982-08-25 1984-02-29 Nec Corp Processor unit
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4739474A (en) 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4566102A (en) * 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
US5123109A (en) 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4761755A (en) 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
DE3681463D1 (en) * 1985-01-29 1991-10-24 Secr Defence Brit PROCESSING CELL FOR ERROR-TOLERANT MATRIX ARRANGEMENTS.
US5023775A (en) 1985-02-14 1991-06-11 Intel Corporation Software programmable logic array utilizing "and" and "or" gates
US5247689A (en) * 1985-02-25 1993-09-21 Ewert Alfred P Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
US4706216A (en) 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US5015884A (en) 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
US5225719A (en) 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
DE3687400T2 (en) * 1985-11-04 1993-07-15 Ibm DIGITAL NEWS TRANSMISSION NETWORKS AND STRUCTURE OF TRANSMISSION WAYS IN THESE NETWORKS.
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
GB8612396D0 (en) * 1986-05-21 1986-06-25 Hewlett Packard Ltd Chain-configured interface bus system
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
FR2606184B1 (en) * 1986-10-31 1991-11-29 Thomson Csf RECONFIGURABLE CALCULATION DEVICE
US4811214A (en) 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5226122A (en) 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
US5115510A (en) * 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5113498A (en) * 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
JPH06101043B2 (en) * 1988-06-30 1994-12-12 三菱電機株式会社 Microcomputer
US4901268A (en) 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
US5204935A (en) 1988-08-19 1993-04-20 Fuji Xerox Co., Ltd. Programmable fuzzy logic circuits
US5353432A (en) 1988-09-09 1994-10-04 Compaq Computer Corporation Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts
ES2047629T3 (en) * 1988-09-22 1994-03-01 Siemens Ag CIRCUIT PROVISION FOR TELECOMMUNICATION SWITCHING FACILITIES, ESPECIALLY TEMPORARY MULTIPLEXING TELEPHONE SWITCHING FACILITIES-PCM WITH CENTRAL COUPLING FIELD AND PARTIAL COUPLING FIELDS.
EP0390907B1 (en) 1988-10-07 1996-07-03 Martin Marietta Corporation Parallel data processor
US5014193A (en) 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5081375A (en) 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
GB8906145D0 (en) 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5203005A (en) * 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
US5109503A (en) 1989-05-22 1992-04-28 Ge Fanuc Automation North America, Inc. Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters
JP2584673B2 (en) * 1989-06-09 1997-02-26 株式会社日立製作所 Logic circuit test apparatus having test data change circuit
CA2021192A1 (en) * 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5233539A (en) 1989-08-15 1993-08-03 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
US5489857A (en) 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US5128559A (en) 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2968289B2 (en) 1989-11-08 1999-10-25 株式会社リコー Central processing unit
US5522083A (en) 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
DE58908974D1 (en) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Data controlled array processor.
DE4000673C2 (en) * 1990-01-11 2003-04-24 Siemens Ag Method and arrangement for the transmission of data in a bus system consisting of several segments
US5125801A (en) 1990-02-02 1992-06-30 Isco, Inc. Pumping system
US5142469A (en) 1990-03-29 1992-08-25 Ge Fanuc Automation North America, Inc. Method for converting a programmable logic controller hardware configuration and corresponding control program for use on a first programmable logic controller to use on a second programmable logic controller
US5198705A (en) 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5483620A (en) 1990-05-22 1996-01-09 International Business Machines Corp. Learning machine synapse processor system apparatus
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5111079A (en) 1990-06-29 1992-05-05 Sgs-Thomson Microelectronics, Inc. Power reduction circuit for programmable logic device
SE9002558D0 (en) 1990-08-02 1990-08-02 Carlstedt Elektronik Ab PROCESSOR
US5274593A (en) 1990-09-28 1993-12-28 Intergraph Corporation High speed redundant rows and columns for semiconductor memories
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5301284A (en) * 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5301344A (en) 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
DE59109046D1 (en) 1991-02-22 1998-10-08 Siemens Ag Programming procedure for a logic module
JPH04290155A (en) 1991-03-19 1992-10-14 Fujitsu Ltd Parallel data processing system
JPH04293151A (en) 1991-03-20 1992-10-16 Fujitsu Ltd Parallel data processing system
US5617547A (en) * 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
EP0539595A4 (en) 1991-04-09 1994-07-20 Fujitsu Ltd Data processor and data processing method
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
CA2109799A1 (en) 1991-05-24 1992-12-10 Daniel Mark Nosenchuck Optimizing compiler for computers
US5659797A (en) 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
US5347639A (en) 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5338984A (en) 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
FR2681791B1 (en) * 1991-09-27 1994-05-06 Salomon Sa VIBRATION DAMPING DEVICE FOR A GOLF CLUB.
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
FR2686175B1 (en) 1992-01-14 1996-12-20 Andre Thepaut MULTIPROCESSOR DATA PROCESSING SYSTEM.
JP2791243B2 (en) * 1992-03-13 1998-08-27 株式会社東芝 Hierarchical synchronization system and large scale integrated circuit using the same
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
EP0643855A1 (en) * 1992-06-04 1995-03-22 Xilinx, Inc. Timing driven method for laying out a user's circuit onto a programmable integrated circuit device
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
US5590348A (en) 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
JPH06180653A (en) 1992-10-02 1994-06-28 Hudson Soft Co Ltd Interruption processing method and device therefor
US5329179A (en) 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
US5497498A (en) 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5392437A (en) 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5361373A (en) 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5428526A (en) 1993-02-03 1995-06-27 Flood; Mark A. Programmable controller with time periodic communication
GB9303084D0 (en) 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
JPH06276086A (en) 1993-03-18 1994-09-30 Fuji Xerox Co Ltd Field programmable gate array
US5548773A (en) 1993-03-30 1996-08-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital parallel processor array for optimum path planning
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5473266A (en) 1993-04-19 1995-12-05 Altera Corporation Programmable logic device having fast programmable logic array blocks and a central global interconnect array
DE4416881C2 (en) * 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Method for operating a data processing device
US5349193A (en) 1993-05-20 1994-09-20 Princeton Gamma Tech, Inc. Highly sensitive nuclear spectrometer apparatus and method
US5444394A (en) 1993-07-08 1995-08-22 Altera Corporation PLD with selective inputs from local and global conductors
JPH0736858A (en) 1993-07-21 1995-02-07 Hitachi Ltd Signal processor
US5457644A (en) 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5440538A (en) 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
US5455525A (en) 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
US5535406A (en) 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5680583A (en) 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5561738A (en) 1994-03-25 1996-10-01 Motorola, Inc. Data processor for executing a fuzzy logic operation and method therefor
US5430687A (en) 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
US5896551A (en) * 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
US5426378A (en) 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5532693A (en) 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
JP3365581B2 (en) 1994-07-29 2003-01-14 富士通株式会社 Information processing device with self-healing function
US5530813A (en) * 1994-08-04 1996-06-25 Pattern Processing Technology Field-programmable electronic crossbar system and method for using same
US5574930A (en) 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
US5513366A (en) 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5530946A (en) 1994-10-28 1996-06-25 Dell Usa, L.P. Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof
JPH08137824A (en) 1994-11-15 1996-05-31 Mitsubishi Semiconductor Software Kk Single-chip microcomputer with built-in self-test function
EP0721157A1 (en) * 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Microprocessor with selectable clock frequency
US5532957A (en) 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5742180A (en) * 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5892961A (en) * 1995-02-17 1999-04-06 Xilinx, Inc. Field programmable gate array having programming instructions in the configuration bitstream
US5675743A (en) 1995-02-22 1997-10-07 Callisto Media Systems Inc. Multi-media server
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5541530A (en) 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5649179A (en) 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor
US5646544A (en) 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
US5889982A (en) * 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5978583A (en) * 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US5649176A (en) 1995-08-10 1997-07-15 Virtual Machine Works, Inc. Transition analysis and circuit resynthesis method and device for digital circuit modeling
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5652894A (en) 1995-09-29 1997-07-29 Intel Corporation Method and apparatus for providing power saving modes to a pipelined processor
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5936424A (en) * 1996-02-02 1999-08-10 Xilinx, Inc. High speed bus with tree structure for selecting bus driver
US6279077B1 (en) * 1996-03-22 2001-08-21 Texas Instruments Incorporated Bus interface buffer control in a microprocessor
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5892370A (en) * 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate array
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5859544A (en) * 1996-09-05 1999-01-12 Altera Corporation Dynamic configurable elements for programmable logic devices
US6005410A (en) * 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
DE19651075A1 (en) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654593A1 (en) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Reconfiguration procedure for programmable blocks at runtime
DE19654846A1 (en) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
DE19704044A1 (en) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Address generation with systems having programmable modules
US5865239A (en) * 1997-02-05 1999-02-02 Micropump, Inc. Method for making herringbone gears
DE19704728A1 (en) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Method for self-synchronization of configurable elements of a programmable module
US6542998B1 (en) * 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (en) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internal bus system for DFPs, as well as modules with two- or multi-dimensional programmable cell structures, for coping with large amounts of data with high networking effort
US5884075A (en) * 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
US6321366B1 (en) * 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6389379B1 (en) * 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US6421817B1 (en) * 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6011407A (en) * 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
JP4128251B2 (en) * 1997-10-23 2008-07-30 富士通株式会社 Wiring density prediction method and cell placement apparatus
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
DE69737750T2 (en) * 1997-12-17 2008-03-06 Hewlett-Packard Development Co., L.P., Houston First and second processors used method
DE19861088A1 (en) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Repairing integrated circuits by replacing subassemblies with substitutes
US6172520B1 (en) * 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US6049222A (en) * 1997-12-30 2000-04-11 Xilinx, Inc Configuring an FPGA using embedded memory
US6034538A (en) * 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
WO1999038071A1 (en) * 1998-01-26 1999-07-29 Chameleon Systems, Inc. Reconfigurable logic for table lookup
DE19807872A1 (en) * 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Method of managing configuration data in data flow processors
US6282627B1 (en) * 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6202182B1 (en) * 1998-06-30 2001-03-13 Lucent Technologies Inc. Method and apparatus for testing field programmable gate arrays
JP3585800B2 (en) * 1999-01-13 2004-11-04 株式会社東芝 Information processing equipment
US6243808B1 (en) * 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups
US6298472B1 (en) * 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6370596B1 (en) * 1999-08-03 2002-04-09 Chameleon Systems, Inc. Logic flag registers for monitoring processing system events
US6341318B1 (en) * 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6288566B1 (en) * 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6311200B1 (en) * 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
US6349346B1 (en) * 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US6519674B1 (en) * 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
US6539477B1 (en) * 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
US6657457B1 (en) * 2000-03-15 2003-12-02 Intel Corporation Data transfer on reconfigurable chip
JP2004506261A (en) * 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Pipeline CT protocol and CT communication
US6538468B1 (en) * 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US6392912B1 (en) * 2001-01-10 2002-05-21 Chameleon Systems, Inc. Loading data plane on reconfigurable chip
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US6792588B2 (en) * 2001-04-02 2004-09-14 Intel Corporation Faster scalable floorplan which enables easier data control flow
US20020143505A1 (en) * 2001-04-02 2002-10-03 Doron Drusinsky Implementing a finite state machine using concurrent finite state machines with delayed communications and no shared control signals
US6999984B2 (en) * 2001-05-02 2006-02-14 Intel Corporation Modification to reconfigurable functional unit in a reconfigurable chip to perform linear feedback shift register function
US20030056091A1 (en) * 2001-09-14 2003-03-20 Greenberg Craig B. Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US20030055861A1 (en) * 2001-09-18 2003-03-20 Lai Gary N. Multipler unit in reconfigurable chip
US20030052711A1 (en) * 2001-09-19 2003-03-20 Taylor Bradley L. Despreader/correlator unit for use in reconfigurable chip

Also Published As

Publication number Publication date
DE59810469D1 (en) 2004-01-29
US7010667B2 (en) 2006-03-07
DE19880128D2 (en) 2000-01-13
JP2001511326A (en) 2001-08-07
US20030135686A1 (en) 2003-07-17
WO1998035294A2 (en) 1998-08-13
EP1398706A3 (en) 2006-04-12
EP1398706A2 (en) 2004-03-17
WO1998035294A3 (en) 1998-10-22
JP3894957B2 (en) 2007-03-22
US6405299B1 (en) 2002-06-11
EP0960374B1 (en) 2003-12-17
DE19704742A1 (en) 1998-09-24
EP0960374A2 (en) 1999-12-01
AU6392498A (en) 1998-08-26
ATE256888T1 (en) 2004-01-15

Similar Documents

Publication Publication Date Title
CA2280057A1 (en) Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements
US9256575B2 (en) Data processor chip with flexible bus system
KR100250437B1 (en) Path control device for round robin arbitration and adaptation
US7595659B2 (en) Logic cell array and bus system
KR900006792B1 (en) Load balancing for packet switching nodes
US4985830A (en) Interprocessor bus switching system for simultaneous communication in plural bus parallel processing system
EP0200780B1 (en) Packet switched multiple queue nxm switch node and processing method
US5594918A (en) Parallel computer system providing multi-ported intelligent memory
US9294551B1 (en) Collective engine method and apparatus
US5630162A (en) Array processor dotted communication network based on H-DOTs
US20070143578A1 (en) System and method for message passing fabric in a modular processor architecture
Konishi et al. PCA-1: A fully asynchronous, self-reconfigurable LSI
JPH05241947A (en) Switching array in distributed cross-bar switch architecture
CN100401279C (en) Configurable multi-port multi-protocol network interface to support packet processing
US20190065428A9 (en) Array Processor Having a Segmented Bus System
JP3375658B2 (en) Parallel computer and network for it
JP3481445B2 (en) Competition mediation method
US9081901B2 (en) Means of control for reconfigurable computers
Amano et al. A dynamically adaptive switching fabric on a multicontext reconfigurable device
US9626325B2 (en) Array processor having a segmented bus system
EP0293616A2 (en) Dynamic switch with task allocation capability
Diab et al. Simulation of dynamic input buffer space in multistage interconnection networks
WO2023016910A2 (en) Interconnecting reconfigurable regions in an field programmable gate array
JPH09179840A (en) Inter-processor coupling network for parallel computer
JPH0652126A (en) Message passing device of interconnected node network and computer system thereof

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued