DE4416881A1 - Data processing device - Google Patents

Data processing device

Info

Publication number
DE4416881A1
DE4416881A1 DE4416881A DE4416881A DE4416881A1 DE 4416881 A1 DE4416881 A1 DE 4416881A1 DE 4416881 A DE4416881 A DE 4416881A DE 4416881 A DE4416881 A DE 4416881A DE 4416881 A1 DE4416881 A1 DE 4416881A1
Authority
DE
Germany
Prior art keywords
cells
processing device
data processing
logic
data
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.)
Granted
Application number
DE4416881A
Other languages
German (de)
Other versions
DE4416881C2 (en
Inventor
Martin Vorbach
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.)
Krass Maren Zuerich Ch
Richter Thomas 04703 Bockelwitz De
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
Priority to DE4416881A priority Critical patent/DE4416881C2/en
Priority to DE4447706A priority patent/DE4447706B4/en
Priority to DE4447707A priority patent/DE4447707B4/en
Publication of DE4416881A1 publication Critical patent/DE4416881A1/en
Application granted granted Critical
Publication of DE4416881C2 publication Critical patent/DE4416881C2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Abstract

An integrated circuit chip carries a number of mutually-orthogonal homogeneously-structured cells, each with a number of logically and structurally-identical components. The cells are combined in rows and columns, possibly also in groups, for connection to chip input/output connections. A charging logic is associated with the cells, via which they can be programmed individually and in groups so that optional logical functions and/or networks can be verified. Manipulation of the data flow processor chip's configuration, i.e. the modification of functional parts or macros can be performed during operation without stopping other functional parts or adversely affecting their functioning.

Description

Die vorliegende Erfindung bezieht sich auf eine Daten­ verarbeitungseinrichtung, d. h. eine Hardwareeinheit zur logischen Manipulation (Verknüpfung) von in binärer Form vorliegenden Daten (Informationen).The present invention relates to a data processing equipment, d. H. a hardware unit for logical manipulation (linking) of in binary form available data (information).

Derartige Datenverarbeitungseinrichtungen sind mittlerweile lange bekannt und sie haben bereits breite Anwendung und Anerkennung gefunden. Die prinzipielle Aufbau- und Arbeits­ struktur der bekannten Datenverarbeitungseinrichtungen ist in etwa so zu definieren, daß eine arithmetisch-logische Verknüpfungseinheit vorgesehen ist, in der die zu verknüp­ fenden Daten einer programmtechnischen Anweisung (Software) zufolge verarbeitet werden. Die Daten werden dabei über ein Steuerwerk in mehr oder weniger komplexen Adressierungs­ vorgängen entsprechend abgerufen und zunächst in Arbeits­ registern bereitgestellt; nach der logischen Verknüpfung werden dann die neuen Daten in einer vorgegebenen Speicher­ stelle wieder abgelegt. Die arithmetisch-logische Verknüp­ fungseinheit besteht dabei aus logischen Verknüpfungsbau­ steinen (Gatter, Glieder), die jeweils so miteinander ge­ koppelt sind, daß die zu manipulierenden Daten der zugrunde liegenden Software entsprechend den vier Grundrechenarten gemäß logisch verarbeitet werden.Such data processing devices are meanwhile long known and they already have wide application and Recognition found. The basic structure and work structure of the known data processing equipment is something like that to define an arithmetic-logical Linking unit is provided, in which the link fenden data of a program statement (software) According to be processed. The data is about a Control unit in more or less complex addressing processes are called accordingly and first in working provided with registers; after the logical link then the new data will be in a given memory filed again. The arithmetic-logic link Fung unit consists of logical link construction stones (gates, limbs), each with each other ge Coupled are that the data to be manipulated on the basis lying software according to the four basic operations be processed logically.

Es ist leicht nachzuvollziehen, daß auf der Basis der be­ kannten Strukturen relativ viel Rechenzeit dafür erforder­ lich ist, die zu manipulierenden Daten auszulesen, und die Arbeitsregister zu überführen, den spezifischen Logikbau­ steinen in der arithmetisch-logischen Verknüpfungseinheit zuzuleiten und schließlich wieder abzuspeichern. Es ist ferner einsichtig, daß die Hardware-Struktur der arith­ metisch-logischen Verknüpfungseinheit insoweit nicht als optimal betrachtet werden kann, als schließlich die hard­ waremäßig vorhandenen integrierten logischen Bausteine stets nur in ein und derselben Art und Weise im Gesamt­ system aktiv benutzt werden. Ebenso wird durch strikte Hardwarevorgabe ein Aneinanderreihen von Funktionen in sogenannten Pipelines sehr erschwert oder eingeschränkt, was zwangsläufig ein häufiges Registerumladen zwischen Arbeitsregistern und Rechenwerk bedeutet. Derartige Bau­ steine sind des weiteren nur schlecht kaskadierbar und er­ fordern dann sehr viel Programmierarbeit.It is easy to understand that on the basis of be Structures needed a relatively large amount of computing time  It is necessary to read the data to be manipulated and the To transfer work registers, the specific logic building stones in the arithmetic-logical linking unit zuzuleiten and finally save again. It is further, that the hardware structure of arith metic-logical linking unit insofar not as optimally considered, as finally the hard according to existing integrated logic components always in one and the same way in the whole system be actively used. Likewise is by strict Hardware preset a stringing of functions in so-called pipelines very difficult or restricted, which inevitably involves frequent reloading between Working registers and arithmetic means. Such construction stones are furthermore poorly cascadable and he then require a lot of programming work.

Ein zusätzlicher Vorteil der vorliegenden Erfindung liegt darin, daß eine über einen weiten Raum skalierbare Paralle­ lität zur Verfügung steht. Hierbei wird eine Basis zum schnellen und flexiblen Aufbau von neuronalen Strukturen geschaffen, wie die bis dato lediglich mit erheblichem Auf­ wand simuliert werden können.An additional advantage of the present invention is in that a parallel over a wide space scalable parallel quality is available. This will be a basis for fast and flexible construction of neural structures created, as the hitherto only with considerable Auf wall can be simulated.

Die der vorliegenden Erfindung zugrunde liegende Aufgabe besteht darin, eine im folgenden Datenflußprozessor (DFP) genannte Datenverarbeitungseinrichtung anzugeben, bei der eine höhere beziehungsweise bessere Flexibilität der Gesamtstruktur und des Datenflusses sowie der Pipelining- und Kaskadiermöglichkeiten zu einer Erhöhung der Rechner­ beziehungsweise Verknüpfungsleistung führt.The object underlying the present invention consists of using one in the following flow processor (DFP) to specify said data processing device, in the a higher or better flexibility of the Forest structure and data flow as well as pipelining and cascading possibilities to increase the computers or linking power leads.

Außer dem Einsatz als reiner Datenflußprozessor, soll der DFP folgende weitere Aufgaben erfüllen können:In addition to the use as a pure data flow processor, the DFP can perform the following additional tasks:

  • - Einsatz als universeller Baustein zum Aufbau von her­ kömmlichen Rechnern, wobei der Aufbau einfacher und billiger werden soll.- Use as a universal building block for the construction of her conventional computers, the structure easier and to become cheaper.
  • - Einsatz in neuronalen Netzen.- Use in neural networks.

Diese Aufgabe wird dadurch gelöst, daß ein integrierter Schaltkreis (Chip) mit einer Vielzahl insbesondere ortho­ gonal zueinander angeordneter Zellen mit je einer Mehrzahl jeweils logisch gleicher und strukturell identisch angeord­ neter Zellen vorgesehen ist deren Anordnung, sowie die interne Busstruktur, zur Erleichterung der Programmierung äußerst homogen ist. Dennoch ist es denkbar innerhalb eines Datenflußprozessors Zellen mit verschiedenen Zellogiken und Zellstrukturen unterzubringen, um so die Leistungsfähigkeit zu erhöhen, indem zum Beispiel für Speicheransteuerungen andere Zellen als für arithmetische Operationen existieren. Insbesondere kann für neuronale Netze eine gewisse Spe­ zialisierung von Vorteil sein. Den Zellen ist eine Ladelo­ gik zugeordnet, über die die Zellen je für sich und gegebe­ nenfalls gruppenweise in sogenannte MACROs zusammengefaßt so programmierbar sind, daß einerseits beliebige logische Funktionen, andererseits aber auch die Verknüpfung der Zellen untereinander in weiten Bereichen verifizierbar sind. Dies wird erreicht indem jeder einzelnen Zelle ein gewisser Speicherplatz zur Verfügung steht, in dem die Konfigurationsdaten abgelegt sind. Anhand dieser Daten werden Multiplexer oder Transistoren in der Zelle be­ schaltet um die jeweilige Zellfunktion zu gewährleisten (siehe Fig. 12).This object is achieved in that an integrated circuit (chip) is provided with a plurality of particular ortho gonal to each other arranged cells each having a plurality of logically identical and structurally identical angeord Neter cells whose arrangement, and the internal bus structure to facilitate programming extremely is homogeneous. Nevertheless, within a data flow processor, it is conceivable to accommodate cells with different cell logics and cell structures so as to increase performance by, for example, having cells other than arithmetic operations for memory drives. In particular, a certain specialization may be advantageous for neural networks. The cells are assigned a Ladelo gik over which the cells are grouped together in groups and so called in so-called MACROs so programmable so that on the one hand any logical functions, but on the other hand, the combination of cells with each other are verifiable in a wide range. This is achieved by providing each cell with a certain storage space in which the configuration data are stored. Based on these data multiplexer or transistors in the cell be switched to the respective cell function to ensure (see Fig. 12).

Mit anderen als im Patentanspruch 1 gebrauchten Worten besteht der Kern der vorliegenden Erfindung darin, einen Datenflußprozessor vorzuschlagen, der zellular aufgebaut ist und dessen Zellen über eine externe Ladelogik im arith­ metisch-logischen Sinne quasi beliebig neu konfiguriert werden können. Dabei ist es von äußerster Notwendigkeit, daß die betreffenden Zeilen einzeln und ohne Beeinflussung der übrigen Zeilen oder gar einer Stillegung des gesamten Bausteins umkonfiguriert werden können. Der Datenfluß­ prozessor gemäß der vorliegenden Erfindung kann so während eines ersten Arbeitszyklus als Addierer und während eines späteren Arbeitszyklus als Multiplizierer "pro­ grammiert" werden, wobei die Anzahl der für die Addition beziehungsweise die Multiplikation erforderlichen Zellen durchaus unterschiedlich sein können. Dabei bleibt die Pla­ zierung der bereits geladenen MACROs erhalten; der Lade­ logik beziehungsweise dem Compiler obliegt es, das neu zu ladende MACRO innerhalb der freien Zellen zu partitionieren (d. h. das zu ladende MACRO so zu zerlegen, daß es sich optimal einfügen läßt). Die Ablaufsteuerung des Programms wird dabei von der Ladelogik übernommen, indem sie gemäß dem momentan ausgeführten Programmabschnitt die entspre­ chenden MACROs in den Baustein lädt, wobei der Ladevorgang von der später beschriebenen Synchronisationslogik mitge­ steuert wird, indem sie den Zeitpunkt des Umladens fest­ legt. Daher entspricht der DFP nicht der bekannten von- Neumann-Architektur, da die Daten- und Programmspeicher getrennt sind. Dies bedeutet jedoch gleichzeitig eine höhe­ re Sicherheit, da fehlerhafte Programme keinen CODE, son­ dern lediglich DATEN zerstören können.With other than in claim 1 used words the core of the present invention is a To propose data flow processor that is cellular and its cells via an external charging logic in the arith metic-logical sense virtually arbitrarily reconfigured can be. It is of utmost necessity  that the lines concerned individually and without interference the rest of the lines or even a shutdown of the whole Modules can be reconfigured. The data flow Processor according to the present invention can thus during a first cycle as an adder and during a later work cycle as a multiplier "per be grammed, with the number of additions or the multiplication required cells can be quite different. The Pla receive the already loaded MACROs; the ark logic or the compiler, it is up to the new loading MACRO within the free cells to partition (ie to decompose the MACRO to be loaded so that it is optimally insert). The flow control of the program is taken over by the charging logic, in accordance with the currently running program section the corre sponding The MACROs load into the device while charging Mitge mitge from the synchronization logic described later is controlled by determining the time of reloading sets. Therefore, the DFP does not comply with the known Neumann architecture, since the data and program memory are separated. However, this means a height at the same time re security, because programs with no code, son They can only destroy DATA.

Um den Datenflußprozessor eine arbeitsfähige Struktur zu geben, werden einige Zellen, und zwar unter anderem die Eingabe-/Ausgabefunktionen (I/O) und Speichermanagement­ funktionen vor dem Laden der Programme geladen und bleiben für gewöhnlich während der gesamten Laufzeit konstant. Dies ist erforderlich um den Datenflußprozessor an seine Hard­ wareumgebung anzupassen. Die übrigen Zellen werden zu soge­ nannten MACROs zusammengefaßt und können während der Lauf­ zeit nahezu beliebig und ohne Beeinflussung der Nachbar­ zellen umkonfiguriert werden. Dazu sind die Zellen einzeln und direkt adressierbar. To make the flow processor a workable structure give, some cells, including the Input / output functions (I / O) and memory management functions are loaded and remain before loading the programs usually constant throughout the run. This is required to the data flow processor to its hard ware environment. The remaining cells become soge called MACROs summarized and can be used during the run time almost arbitrarily and without influencing the neighbor cells are reconfigured. These are the cells individually and directly addressable.  

Um die Umstrukturierung (das Umladen) der Zellen oder MACROs mit der Ladelogik zu synchronisieren, kann - wo notwendig, da nur Umgeladen werden darf, wenn die MACROs mit ihrer alten Tätigkeit fertig sind - eine Synchronisa­ tionsschaltung als MACRO auf dem Datenflußprozessor unter­ gebracht werden, die die entsprechenden Signale an die Ladelogik absendet. Hierzu kann eventuell eine Modifikation der gewöhnlichen MACROs von Nöten sein, da diese dann der Synchronisations-Schaltung Zustandsinformationen zur Ver­ fügung stellen müssen.To restructure (reload) the cells or Synchronizing MACROs with the charging logic can - where necessary, since only reloading is allowed, if the MACROs finished with their old activity - a synchronisa tion as MACRO on the data flow processor under be brought to the corresponding signals to the Charge logic sends off. This may possibly be a modification of the ordinary MACROs be necessary, since these then the Synchronization circuit Status information for Ver need to provide.

Diese Zustandsinformationen signalisieren der Synchronisa­ tionslogik für gewöhnlich, daß einzelne MACROs ihre Aufgabe erledigt haben, was aus programmiertechnischer Sicht zum Beispiel die Terminierung einer Prozedur oder das Erreichen der Terminierungsbedingung einer Schleife bedeuten kann. D.h. das Programm wird an einer anderen Stelle fortgesetzt und die die Zustandsinformation absendenden MACROs können umgeladen werden. Zudem kann es von Interesse sein, daß die MACROs in einer bestimmten Reihenfolge umgeladen werden. Hierzu kann eine Wertung der einzelnen Synchronisations- Signale durch einen Prioritätsdekoder erfolgen. Eine der­ artige - einfache - Logik ist in Fig. 13 gezeichnet. Die Logik besitzt sieben Eingangssignale durch die die sieben MACROs ihre Zustandsinformation abgeben. In diesem Fall soll 0 für "in Arbeit" und 1 für "fertig" stehen. Die Logik besitzt drei Ausgangssignale, die an die Ladelogik geführt werden, wobei der Zustand 000 als Ruhezustand gilt. Liegt ein Signal an einem der sieben Eingänge an, so findet eine Dezimal-Binär-Umsetzung statt, so wird zum Beispiel Sync6 als 110 dargestellt, was der Ladelogik anzeigt, daß das MACRO, welches Sync6 bedient, seine Aufgabe beendet hat. Liegen gleichzeitig mehrere Synchronisations-Signale am Eingang an, so gibt die Synchronisationsschaltung das Sig­ nal mit der höchsten Priorität an die Ladelogik weiter; liegen zum Beispiel Sync0, Sync4 und Sync6 an, so reicht die Syncronistaions-Schaltung zunächst Sync6 an die Lade­ logik weiter. Nachdem die entsprechenden MACROs umgeladen sind und somit Sync6 nicht mehr anliegt wird Sync4 weiter­ geleitet usw. Zur Verdeutlichung dieses Prinzips kann der Standard-TTL-Baustein 74148 in Betracht gezogen werden.This state information usually signals the synchronization logic that individual MACROs have done their job, which from a programming point of view can mean, for example, the termination of a procedure or the achievement of the termination condition of a loop. This means that the program will be continued at another location and the MACROs sending the status information can be reloaded. In addition, it may be of interest that the MACROs are reloaded in a particular order. For this purpose, an evaluation of the individual synchronization signals can be carried out by a priority decoder. One of the - simple - logic is drawn in Fig. 13. The logic has seven input signals through which the seven MACROs output their status information. In this case, 0 stands for "in progress" and 1 for "finished". The logic has three output signals, which are fed to the charging logic, the state 000 is considered to be at rest. If a signal is present at one of the seven inputs, then a decimal-to-binary conversion takes place, for example, Sync6 is represented as 110, which indicates to the load logic that the MACRO serving Sync6 has completed its task. If several synchronization signals are present at the same time at the input, the synchronization circuit forwards the signal with the highest priority to the charging logic; If, for example, Sync0, Sync4 and Sync6 are applied, then the syncronisation circuit first passes Sync6 to the loading logic. After the corresponding MACROs are reloaded and thus Sync6 is no longer present, Sync4 is passed on, etc. To illustrate this principle, the standard TTL module 74148 can be considered.

Über die Ladelogik kann der Datenflußprozessor jeweils optimal und gegebenenfalls dynamisch auf eine zu lösende Aufgabe eingestellt werden. Damit ist zum Beispiel der große Vorteil verbunden, daß neue Normen oder dergleichen einzig und allein durch eine Umprogrammierung des Daten­ flußprozessors umgesetzt werden können und nicht - wie bisher - einen Austausch mit entsprechendem Anfall von Elektronikschrott bedingen.About the loading logic of the data flow processor can each optimal and possibly dynamic to be solved Task be set. This is for example the Great advantage associated with new standards or the like solely by reprogramming the data Flow processors can be implemented and not - like so far - an exchange with appropriate fit of Electronic waste condition.

Die Datenflußprozessoren sind untereinander kaskadierbar, was zu einer beinahe beliebigen Erhöhung des Parallelisie­ rungsgrades, der Rechenleistung, sowie der Netzgröße in neuronalen Netzen führt. Besonders wichtig ist hier eine klare homogene Verbindung der Zellen mit den Ein-/Aus­ gangs-Pins (IO-Pin) der Datenflußprozessoren, um möglichst keine Einschränkungen auf die Programme zu haben.The data flow processors can be cascaded with one another, what an almost arbitrary increase of the parallelism degree of efficiency, the computing power, as well as the network size in neural networks. Especially important here is one clear homogeneous connection of the cells with the on / off gangs-pins (IO-Pin) of the data flow processors, if possible have no restrictions on the programs.

In Fig. 14 ist zum Beispiel die Kaskadierung von vier DFPs gezeigt. Sie erscheinen der Umgebung wie ein großer homo­ gener Baustein (Fig. 15). Prinzipiell sind damit zwei Kas­ kadierungsmethoden denkbar:For example, FIG. 14 shows the cascading of four DFPs. They appear to the environment like a large homogeneous building block ( Fig. 15). In principle, two methods of kadening are conceivable:

  • a) Nur die lokalen Verbindungen zwischen den Zellen werden herausgeführt, was im vorliegenden Beispiel zwei IO- Pins pro Kantenzelle und vier IO-Pins pro Eckzelle be­ deutet. Allerdings hat der Compiler/Programmierer zu beachten, daß die globalen Verbindungen nicht heraus­ geführt werden, wodurch die Kaskadierung nicht voll­ ständig homogen ist. (Globale Verbindungen zwischen mehreren Zellen, für gewöhnlich zwischen einer kom­ pletten Zellenreihe oder -spalte - siehe Fig. 6 -; lo­ kale Verbindungen existieren nur zwischen zwei Zellen). Fig. 16a zeigt den Aufbau innerhalb eines DFPs, Fig. 17a zeigt die daraus resultierende Kaskadierung von mehreren DFPs (drei gezeichnet).a) Only the local connections between the cells are led out, which in the present example, two IO pins per edge cell and four IO pins per corner cell be. However, the compiler / programmer has to keep in mind that the global connections are not routed out, which means that the cascading is not completely homogeneous. (Global connections between multiple cells, usually between a complete cell row or column - see Fig. 6 - Local links exist only between two cells). Fig. 16a shows the structure within a DFP, Fig. 17a shows the resulting cascading of several DFPs (three drawn).
  • b) Die lokalen und globalen Verbindungen werden heraus­ geführt, was die Anzahl der benötigten Treiber/IO-Pins und Leitungen drastisch erhöht, in unserem Beispiel auf sechs IO-Pins pro Kantenzelle und zwölf IO-Pins pro Eckzelle. Dadurch ist eine vollständige Homogenität bei der Kaskadierung gegeben.b) The local and global connections are out led what the number of required drivers / IO pins and lines increased dramatically, in our example six IO pins per edge cell and twelve IO pins per Corner cell. This ensures complete homogeneity given the cascading.

Da die globalen Verbindungen insbesondere bei Verwendung der Kaskadierungstechnik b) sehr lang werden können, kann der unangenehme Effekt auftreten, daß die Zahl der globalen Verbindungen nicht ausreicht, da bekanntlich jede Verbin­ dung nur von einem Signal genutzt werden kann. Um diesen Effekt zu minimieren, kann nach einer gewissen Länge der globalen Verbindungen ein Treiber eingeschleift werden. Der Treiber hat zum einen eine Verstärkung des Signals zur Auf­ gabe, die bei langen Strecken und entsprechend hohen Lasten, unbedingt erforderlich ist; zum anderen kann der Treiber in Tristate gehen und damit das Signal unterbre­ chen. Dadurch können die Abschnitte links und rechts, be­ ziehungsweise oberhalb und unterhalb des Treibers von ver­ schiedenen Signalen genutzt werden, sofern der Treiber in Tristate ist, ansonsten wird ein Signal durchgeschleift. Wichtig ist hierbei, daß die Treiber der einzelnen globalen Leitungen auch einzeln angesteuert werden können, d. h. ein globales Signal kann unterbrochen sein, das Nachbarsignal ist jedoch durchgeschleift. Somit können auf einer globalen Verbindung durchaus abschnittweise verschiedene Signale an­ liegen, während die globale Nachbarverbindung tatsächlich global von ein und demselben Signal verwendet wird (ver­ gleiche Fig. 22). Since the global connections can become very long, in particular when using the cascading technique b), the unpleasant effect can occur that the number of global connections is insufficient, since it is known that each connection can only be used by one signal. To minimize this effect, a driver can be inserted after a certain length of the global connections. The driver has on the one hand an amplification of the signal to task, which is absolutely necessary for long distances and correspondingly high loads; on the other hand, the driver can go into Tristate and thus interrupt the signal. As a result, the sections on the left and right, or above and below the driver of different signals can be used, if the driver is in Tristate, otherwise a signal is looped through. It is important here that the drivers of the individual global lines can also be controlled individually, ie a global signal can be interrupted, but the neighboring signal is looped through. Thus, various signals can be present in sections on a global connection, while the global neighboring connection is actually used globally by one and the same signal (see FIG. 22).

Zur besseren Kommunikation zwischen den Datenfluß­ prozessoren und der Ladelogik können sogenannte Shared- Memories eingesetzt werden. So können zum Beispiel Pro­ gramme von einer Festplatte, die im IO-Bereich eines Daten­ flußprozessors liegt zur Ladelogik durchgereicht werden, indem die Datenflußprozessoren die Daten von der Platte in den Shared-Memory schreiben und die Ladelogik sie dort ab­ holt. Dies ist besonders wichtig, da hier, wie bereits er­ wähnt, keine von-Neumann- sondern eine Harvardarchitektur vorliegt. Ebenso sind die Shared-Memories von Vorteil, wenn Konstanten, die im Programm - das im Speicherbereich der Ladelogik liegt - definiert sind, mit Daten - die im Speicherbetrieb der Datenflußprozessoren liegen - verknüpft werden sollen.For better communication between the data flow processors and the charging logic can use so-called shared Memories are used. For example, Pro gramme from a hard disk in the IO area of a data flow processor is passed to the charging logic, by the data flow processors the data from the disk in write the shared memory and the charging logic write them off get. This is especially important because here, as he already did not a von Neumann but a Harvard architecture is present. Similarly, the shared memories are beneficial if Constants that are in the program - that in the memory area of Loading logic is - defined, with data - in the Memory operation of the data flow processors are linked should be.

Weiterbildungen der vorstehend definierten und umschriebe­ nen Erfindung sind Gegenstand der Unteransprüche.Further developments of the above defined and rewritten nen invention are the subject of the dependent claims.

Eine besondere Verwendung des erfindungsgemäßen Daten­ flußprozessors ist darin zu sehen, daß er in Verbindung mit geeigneten Ein-/Ausgabe-Einheiten einerseits und einem Speicher andererseits die Basis für einen kompletten (kom­ plexen) Rechner bilden kann. Dabei kann ein Großteil der IO-Funktionen als MACROs auf dem Datenflußprozessor implementiert werden und es brauchen momentan lediglich Spezialbausteine (Ethernet-Treiber, VRAMS . . . ) extern zuge­ fügt zu werden. Bei einer Normänderung oder Verbesserung muß dann wie bereits angedeutet nur das MACRO softwaresei­ tig gewechselt werden; ein Eingriff in die Hardware ist nicht notwendig. Es bietet sich hier an, einen IO-(Ein­ gabe-/Ausgabe-) Stecker festzulegen, über welchen dann die Zusatzbausteine angeschlossen werden können.A particular use of the data according to the invention Flux processor is to be seen in that he is in connection with suitable input / output units on the one hand and a Memory on the other hand, the basis for a complete (com plexen) can form computers. Here, a large part of the IO functions as MACROs on the data flow processor are implemented and currently only need it Special modules (Ethernet driver, VRAMS ...) supplied externally to be added. For a standard change or improvement must then, as already indicated only the MACRO softwaresei be changed; is an intervention in the hardware unnecessary. It makes sense here, an IO- (Ein input / output) plug on which then the additional modules can be connected.

Fig. 20 zeigt den stark vereinfachten Aufbau eines heute üblichen Rechners. Durch den Einsatz eines DFP-Bausteins können erhebliche Teile eingespart werden (Fig. 21), wobei die entsprechenden herkömmlichen Baugruppen (CPU, Speicher­ verwaltung, SCSI-, Tastatur- und Videointerface, sowie der parallelen und seriellen Schnittstellen) als MACROs in die kaskadierten DFPs abgelegt werden. Nur die durch einen DFP nicht nachbildbaren Teile wie Speicher und Leitungstreiber mit nicht TTL-Pegeln oder für hohe Lasten müssen extern zu­ geschaltet werden. Durch die Verwendung des DFPs ist eine günstige Produktion gegeben, da ein und derselbe Baustein sehr häufig verwendet wird, das Layout der Platine ist durch die homogene Vernetzung entsprechend einfach. Zudem wird der Aufbau des Rechners durch die Ladelogik bestimmt, die hier für gewöhnlich nur zu Beginn der Abarbeitung (nach einem Reset) das DFP-Array lädt, wodurch eine günstige Fehlerkorrektur- und Erweiterungsmöglichkeit gegeben ist. Ein derartiger Rechner kann insbesondere mehrere verschie­ dene Rechnerstrukturen simulieren, indem einfach der Aufbau des zu simulierenden Rechners in das DFP-Array geladen wird. Zu bemerken ist, daß hierbei der DFP nicht in seiner Funktion als DFP arbeitet sondern lediglich ein hochkom­ plexes und frei programmierbares Logikarray zur Verfügung stellt, sich hierbei jedoch von herkömmlichen Bausteinen in seiner besonderen guten Kaskadierbarkeit unterscheidet. Fig. 20 shows the much simplified structure of a computer today. Considerable parts can be saved by using a DFP module ( Figure 21), with the corresponding conventional modules (CPU, memory management, SCSI, keyboard and video interface, as well as the parallel and serial interfaces) being MACROs in the cascaded DFPs be filed. Only parts that can not be replicated by a DFP, such as memory and line drivers with non-TTL levels or for high loads, must be switched externally. By using the DFPs a favorable production is given, since one and the same building block is used very frequently, the layout of the board is correspondingly simple due to the homogenous networking. In addition, the structure of the computer is determined by the charging logic, which here usually only at the beginning of the processing (after a reset) loads the DFP array, whereby a favorable error correction and expansion option is given. Such a computer can in particular simulate several different computer structures by simply loading the structure of the computer to be simulated into the DFP array. It should be noted that in this case the DFP does not work in its function as a DFP but merely provides a highly complex and freely programmable logic array, but in this case differs from conventional components in its particular good cascadability.

Ein weiteres Einsatzgebiet des Bausteins ist der Aufbau großer neuronaler Netze. Sein besonderer Vorzug liegt hier­ bei in seiner hohen Gatterdichte, seiner ausgezeichneten Kaskadierbarkeit, sowie seiner Homogenität. Ein Lernvor­ gang, der eine Änderung einzelner axiomatischer Verbin­ dungen beziehungsweise einzelner Zellfunktionen beinhaltet ist auf üblichen Bausteinen ebenso schlecht durchführbar, wie der Aufbau großer homogener und gleichzeitig flexibler Zellstrukturen. Die dynamische Umkonfigurierbarkeit ermög­ licht erstmalig die optimale Simulation von Lernvorgängen.Another application of the device is the structure large neural networks. Its special advantage lies here at in its high gate density, its excellent Cascadability, as well as its homogeneity. A learning advance a change of single axiomatic verbin ments or individual cell functions is just as bad to perform on common building blocks, like building large homogeneous and at the same time more flexible Cell structures. The dynamic reconfigurability made possible For the first time the optimal simulation of learning processes.

Die vorliegende Erfindung wird im folgenden anhand der weiteren Figuren näher erläutert. Insgesamt zeigen The present invention will be described below with reference to FIGS further figures explained in more detail. Overall show  

Fig. 1 ein Schaltsymbol für einen 8-Bit-Addierer; Fig. 1 is a circuit symbol for an 8-bit adder;

Fig. 2 ein Schaltsymbol für einen aus acht 1-Bit- Addierern bestehenden 8-Bit-Addierer nach Fig. 1; FIG. 2 is a circuit diagram for an eight-bit adder consisting of eight 1-bit adders as shown in FIG. 1; FIG.

Fig. 3 eine logische Struktur eines 1-Bit-Addierers ent­ sprechend Fig. 2; Fig. 3 is a logical structure of a 1-bit adder according to Fig. 2;

Fig. 4 eine Zellenstruktur des 1-Bit-Addierers ent­ sprechend Fig. 3; FIG. 4 shows a cell structure of the 1-bit adder according to FIG. 3; FIG.

Fig. 5 einen der Zellenstruktur nach Fig. 1 entsprechend aufgebauten 8-Bit-Addierer; FIG. 5 shows an 8-bit adder constructed in accordance with the cell structure of FIG. 1; FIG.

Fig. 6 ein aus vier Zellen bestehendes unprogrammiertes SUBMACRO X (analog einem 1-Bit-Addierer gemäß Fig. 4 beziehungsweise Fig. 5) mit den erforder­ lichen Leitungsanschlüssen; Fig. 6 is an existing four-cell unprogrammed SUBMACRO X (analogous to a 1-bit adder of FIG 4 or FIG. 5.) With the erforder handy lead terminals;

Fig. 7 einen Teilausschnitt eines integrierten Schalt­ kreises (Chip) mit einer Vielzahl von Zellen und einem separierten SUBMACRO X gemäß Fig. 6; Fig. 7 is a partial section of an integrated circuit (chip) having a plurality of cells and a separated SUBMACRO X of FIG. 6;

Fig. 8 einen integrierten Schaltkreis (Chip) mit einer Orthogonalstruktur einer quasi beliebigen Viel­ zahl von Zellen und einer extern zugeordneten Ladelogik; Fig. 8 is an integrated circuit (chip) having a Orthogonalstruktur a quasi any plurality of cells and an externally associated load logic;

Fig. 9 ein erstes Ausführungsbeispiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach Fig. 8; Fig. 9 shows a first embodiment of a plurality with each other to an arithmetic unit coupled integrated circuits (Data flow) of Fig. 8;

Fig. 10 ein zweites Ausführungsbeispiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach Fig. 8; Fig. 10 shows a second embodiment of a plurality with each other to an arithmetic unit coupled integrated circuits (Data flow) of Fig. 8;

Fig. 11 ein Ausführungsbeispiel eines MACRO zur Addition zweier Zahlenreihen; Figure 11 is an embodiment of a MACRO for the addition of two number series.

Fig. 12 einen beispielhaften Aufbau einer Zelle mit Multiplexern zur Auswahl der jeweiligen logischen Bausteine; Fig. 12 shows an exemplary structure of a cell with multiplexers for selecting the respective logical components;

Fig. 13 eine zum Beispiel mit einem Standard-TTL-Baustein 74148 ausgeführte Synchronisationslogik; Fig. 13 shows a synchronization logic implemented, for example, with a standard TTL module 74148;

Fig. 14 die Kaskadierung von vier DFPs, wobei die Verbin­ dung zwischen den IO-Pins nur schematisch darge­ stellt sind (tatsächlich bedeutet eine gezeichne­ te Verbindung eine Mehrzahl von Leitungen); Figure 14 shows the cascading of four DFPs, with the connection between the IO pins only schematically illustrated (in fact, a signed connection means a plurality of lines);

Fig. 15 die durch die Kaskadierung erreichte Homogenität; Fig. 15 shows the homogeneity achieved by cascading;

Fig. 16a die Struktur der E/A-Zellen, wobei die globalen Verbindungen nicht herausgeführt werden, FIG. 16a, the structure of the I / O cells, said global connections are not drawn out,

Fig. 16b die Struktur der E/A-Zellen, jedoch mit herausge­ führten globalen Verbindungen; FIG. 16b shows the structure of the I / O cells but with global connections taken out; FIG.

Fig. 17a die aus Fig. 16a resultierende Kaskadierung, wo­ bei eine Eckzelle, sowie die zwei mit ihr kommu­ nizierenden Treiberzellen der kaskadierten Bau­ steine (vergleiche hierzu Fig. 14) gezeichnet sind; Fig. 17a resulting from Fig. 16a cascading, where at a corner cell, as well as the two kommu ning with them driving cells of the cascaded construction stones (see Fig. 14) are drawn;

Fig. 17b die aus Fig. 16b resultierende Kaskadierung, wo­ bei eine Eckzelle, sowie die zwei mit ihr kommu­ nizierenden Treiberzellen der kaskadierten Bau­ steine (vergleiche hierzu Fig. 14) gezeichnet sind; Fig. 17b resulting from Fig. 16b cascading, where at a corner cell, as well as the two Kommu ning with them driver cells of the cascaded construction stones (see Fig. 14) are drawn;

Fig. 18a eine Multiplikationsschaltung (vergleiche Fig. 11a); Fig. 18a shows a multiplication circuit (see Fig. 11a);

Fig. 18b die interne Struktur des DFPs nach dem Laden (vergleiche Fig. 11b); Fig. 18b shows the internal structure of the DFP after loading (see Fig. 11b);

Fig. 19c die Arbeitsweise des DFPs im Speicher, sowie die Zustände der Zähler 47, 49; Fig. 19c shows the operation of the DFP in memory, as well as the states of the counters 47 , 49 ;

Fig. 19 eine Kaskadenschaltung, wobei der Addierer aus Fig. 11 und der Multiplizierer aus Fig. 18 zur Steigerung der Rechenleistung hintereinander ge­ schaltet sind; FIG. 19 shows a cascade circuit, wherein the adder from FIG. 11 and the multiplier from FIG. 18 are connected one behind the other to increase the computing power; FIG.

Fig. 20 den stark schematisierten Aufbau eines herkömm­ lichen Rechners; FIG. 20 shows the highly schematic structure of a conventional computer; FIG.

Fig. 21 den möglichen Aufbau desselben Rechners mit Hilfe eines Arrays aus kaskadierten DFPs;21 shows the possible structure of the same computer with the aid of an array of cascaded DFPs.

Fig. 22 einen Ausschnitt mit eingezeichneten (Leitungs-) Treibern eines DFPs. FIG. 22 shows a section with drawn (line) drivers of a DFP.

In Fig. 1 ist ein Schaltsymbol eines 8-Bit-Addierers darge­ stellt. Das Schaltsymbol besteht aus einem quadratischen Baustein 1 mit acht Eingängen A 0 . . . 7 für ein erstes Daten­ wort A und acht Eingängen B 0 . . . 7 für ein zweites (zu addierendes) Datenwort B. Die jeweils acht Eingänge Ai, Bi werden ergänzt durch einen weiteren Eingang Üein über den dem Baustein 1 gegebenenfalls ein Übertrag zugeleitet wird. Der Baustein 1 hat funktions- und bestimmungsgemäß acht Ausgänge S 0 . . . 7 für binären Summanden und einen weiteren Ausgang Üaus für den gegebenenfalls bestehenden Übertrag.In Fig. 1 is a switching symbol of an 8-bit adder Darge presents. The switching symbol consists of a square block 1 with eight inputs A 0. , , 7 for a first data word A and eight inputs B 0. , , 7 for a second (to be added) data word B. The eight inputs Ai, Bi are supplemented by a further input Uein via the block 1, if necessary, a carry is supplied. The function block 1 has functionally and correctly eight outputs S 0. , , 7 for binary summands and a further output Oaus for the possibly existing carry.

Das in Fig. 1 dargestellte Schaltsymbol ist in Fig. 2 als Anordnung sogenannter SUBMACROS dargestellt. Diese SUBMACROS 2 bestehen je aus einem 1-Bit-Addierer 3 mit je einem Eingang für die entsprechenden Bits des Datenworts und einem weiteren Eingang für ein Übertragsbit. Die 1-Bit- Addierer 3 weisen darüberhinaus einen Ausgang für den Summanden und einen Ausgang für den Übertrag Üaus auf.The switching symbol shown in FIG. 1 is shown in FIG. 2 as an arrangement of so-called SUBMACROS. These SUBMACROS 2 each consist of a 1-bit adder 3 , each having an input for the corresponding bits of the data word and a further input for a carry bit. The 1-bit adder 3 furthermore have an output for the summand and an output for the carry-over.

In Fig. 3 ist die binäre Logik eines 1-Bit-Addierers bezie­ hungsweise eines SUBMACROS 2 nach Fig. 2 dargestellt. Ana­ log zu Fig. 2 weist diese Schaltlogik je einen Eingang Ai, Bi für die konjugierten Bits der zu verknüpfenden Daten auf; ferner ist ein Eingang Üein für den Übertrag vorgese­ hen. Diese Bits werden den dargestellten Verbindungen be­ ziehungsweise Verknüpfungen entsprechend in zwei ODER- Gliedern 5 und drei NAND-Gliedern 6 verknüpft, so daß am Ausgangsanschluß Si und am Ausgang für den Übertrag Üaus die einem Volladdierer entsprechenden Verknüpfungsergeb­ nisse (Si, Üaus) anstehen. FIG. 3 shows the binary logic of a 1-bit adder or a SUBMACROS 2 according to FIG. 2. Analogous to FIG. 2, this switching logic has an input Ai, Bi for the conjugate bits of the data to be linked; Furthermore, an input Uein is provided for the transfer. These bits are linked to the illustrated connections or links correspondingly into two OR gates 5 and three NAND gates 6 , so that at the output terminal Si and at the output for carryover, the link adder corresponding to a full adder (Si, OUT) is present.

Die Erfindung setzt da ein, wo es - wie in Fig. 4 darge­ stellt - darum geht, das in Fig. 3 gezeigte SUBMACRO 2 oder eine oder mehrere beliebige Funktion(en) in geeigneter Weise in einer Zellstruktur zu implementieren. Dies ge­ schieht auf der Grundlage logisch und strukturell identi­ scher Zellen 10, deren einzelne logische Bausteine der auszuführenden Verknüpfungsfunktion entsprechend mit­ einander gekoppelt werden, und zwar mittels der noch zu beschreibenden Ladelogik. Gemäß der in Fig. 4 gezeigten, von der Schaltlogik nach Fig. 3 abgeleiteten Verknüpfungs­ logik für einen 1-Bit-Addierer sind je zwei Zellen 10.1, 10.2 bezüglich der logischen Bausteine insoweit gleich, daß jeweils ein ODER-Glied 5 und ein NAND-Glied 6 aktiviert sind. Eine dritte Zelle 10.3 wird nur als Leitungszelle (Leiterbahnzelle) benutzt und die vierte Zelle 10.4 ist be­ züglich des dritten NAND-Gliedes 6 aktiv geschaltet. Das aus den vier Zellen 10.1 . . . 10.4 bestehende SUBMACRO 2 steht somit stellvertretend für einen 1-Bit-Addierer, d. h. ein 1-Bit-Addierer einer Datenverarbeitungseinrichtung gemäß der vorliegenden Erfindung wird über vier ent­ sprechend programmierte (konfigurierte) Zellen 10.1 . . . 10.4 verifiziert. (Der Vollständigkeit halber soll ange­ merkt werden, daß die einzelnen Zellen ein erheblich um­ fangreicheres Netzwerk von logischen Bausteinen, sprich Verknüpfungsgliedern, und Invertern aufweist, die jeweils dem aktuellen Befehl der Ladelogik zufolge aktiv geschaltet werden können. Neben den logischen Bausteinen ist auch ein dichtes Netz von Verbindungsleitungen zwischen den jeweils benachbarten Bausteinen und zum Aufbau von zeilen- und spaltenweisen Busstrukturen zur Datenübertragung anderer­ seits vorgesehen, so daß über eine entsprechende Program­ mierung seitens der Ladelogik quasi beliebige logische Ver­ knüpfungsstrukturen implementiert werden können).The invention begins where, as shown in FIG. 4, it is a question of implementing the SUBMACRO 2 shown in FIG. 3 or one or more arbitrary function (s) in a suitable manner in a cell structure. This ge happens on the basis of logically and structurally identical cells 10 , whose individual logical components of the logic function to be performed are correspondingly coupled to each other, by means of the charging logic to be described. According to the shown in Fig. 4, derived from the switching logic of FIG. 3 logic linkage for a 1-bit adder are two cells 10.1 , 10.2 with respect to the logic blocks in so far the same that each have an OR gate 5 and a NAND Member 6 are activated. A third cell 10.3 is used only as a line cell (interconnect cell) and the fourth cell is 10.4 be connected to the third NAND gate 6 is active. That from the four cells 10.1 . , , 10.4 existing SUBMACRO 2 is thus representative of a 1-bit adder, ie a 1-bit adder of a data processing device according to the present invention is four accordingly programmed (configured) cells 10.1 . , , 10.4 verified. (For the sake of completeness, it should be noted that the individual cells have a considerably more extensive network of logical building blocks, ie logic gates, and inverters, which can each be activated according to the current command of the charging logic Network of interconnections between the respective neighboring blocks and to build line and column-wise bus structures for data transmission on the other hand provided so that can be implemented via a corresponding programming tion on the part of the charging logic quasi arbitrary logical Ver knüpfungsstrukturen).

Der Vollständigkeit halber ist in Fig. 5 der Zellenaufbau eines 8-Bit-Addierers in seiner Gesamtheit dargestellt. Die in Fig. 5 gezeigte Struktur entspricht insoweit der nach Fig. 2, wobei die in Fig. 2 symbolisch als SUBMACROS 2 dar­ gestellten 1-Bit-Addierer jeweils durch eine vier-zellige Einheit 10.1 . . . 10.4 ersetzt sind. Bezogen auf den erfin­ dungsgemäßen Datenflußprozessor bedeutet dies, daß zweiund­ dreißig Zellen der zur Verfügung stehenden Gesamtheit von Zellen einer zellular mit logisch identischem Layout gefer­ tigten Schaltungsplatine seitens der Ladelogik so ange­ steuert und konfiguriert beziehungsweise programmiert werden, daß diese zweiunddreißig Zellen ein 8-Bit-Addierer bilden.For the sake of completeness, FIG. 5 shows the cell structure of an 8-bit adder in its entirety. The structure shown in Fig. 5 corresponds to that of FIG. 2, wherein the in Fig. 2 symbolically as SUBMACROS 2 represents 1-bit adder each by a four-cell unit 10.1 . , , 10.4 are replaced. Based on the inventions to the invention data flow processor, this means that zweiund thirty cells of the available set of cells of a cell with a geometrically identical layout gefer ended circuit board on the part of the charging logic controls and be configured or programmed so that these thirty-two cells an 8-bit Add adders.

In der Darstellung nach Fig. 5 ist über eine strichpunk­ tierte Umrahmung ein SUBMACRO "X" zeichnerisch separiert, das letztlich als aus vier einem 1-Bit-Addierer entspre­ chend programmierten Zellen (10 gemäß Fig. 4) bestehende Untereinheit zu betrachten ist.In the illustration according to FIG. 5, a SUBMACRO "X" is graphically separated by means of a dot-dash frame, which is ultimately to be regarded as consisting of four cells ( 10 according to FIG. 4) consisting of four 1-bit adders.

Das in Fig. 5 separierte SUBMACRO "X" ist in Fig. 6 als Teil eines integrierten Schaltkreises (Chip) 20 gemeinsam mit Leitungs- und Datenanschlüssen dargestellt. Das SUB MACRO "X" besteht aus den vier Zellen 10 die entsprechend der orthogonalen Struktur je Seite vier Datenanschlüsse (also insgesamt sechzehn Datenanschlüsse je Zelle) aufwei­ sen. Die Datenanschlüsse verbinden jeweils benachbarte Zel­ len, so daß ersichtlich wird, wie beispielsweise eine Dateneinheit von Zelle zu Zelle durchgeschleust wird. Die Ansteuerung der Zellen 10 erfolgt einerseits über sogenann­ te lokale Steuerungen, das sind lokale Leitungen, die mit allen Zellen verbunden sind, und andererseits über soge­ nannte globale Leitungen, d. h. Leitungen, die über den ge­ samten integrierten Schaltkreis (Chip) 20 geführt sind.The SUBMACRO "X" separated in FIG. 5 is shown in FIG. 6 as part of an integrated circuit (chip) 20 together with line and data connections. The SUB MACRO "X" consists of the four cells 10 which according to the orthogonal structure per page four data ports (ie a total of sixteen data ports per cell) aufwei sen. The data ports each connect adjacent cells, so that it becomes apparent, for example, how a data unit is passed through from cell to cell. The control of the cells 10 takes place on the one hand via sogenann te local controls, these are local lines that are connected to all cells, and on the other hand via so-called global lines, ie lines that are on the ge entire integrated circuit (chip) 20 out.

In Fig. 7 ist ein vergrößerter Ausschnitt eines integrier­ ten Schaltkreises 20 dargestellt, der mit einem orthogona­ len Raster von Zellen 10 belegt ist. Wie in Fig. 7 angedeu­ tet kann so zum Beispiel eine Gruppe von vier Zellen 10 als SUBMACRO "X" ausgewählt und dem 1-Bit-Addierer ent­ sprechend Fig. 4 gemäß programmiert beziehungsweise konfi­ guriert werden. In Fig. 7, an enlarged section of an integrated th circuit 20 is shown, which is occupied by a orthogona len grid of cells 10 . As hinted at in FIG. 7, for example, a group of four cells 10 can be selected as SUBMACRO "X" and be programmed or confi gured to the 1-bit adder according to FIG .

Ein vollständiger integrierter Schaltkreis (Chip) 20 ist in Fig. 8 dargestellt. Dieser integrierte Schaltkreis 20 be­ steht aus einer Vielzahl im orthogonalen Raster angeordne­ ter Zellen 10 und weist an seinen Außenkanten eine ent­ sprechende Anzahl von Leitungsanschlüssen (Pins) auf, über die Signale, insbesondere Ansteuersignale und Daten zuge­ führt und weitergeleitet werden können. In Fig. 8 ist wiederum das SUBMACRO "X" gemäß Fig. 5/Fig. 6 abgegrenzt; darüberhinaus sind auch weitere SUBMACROS separiert, die spezifischen Funktionen und Vernetzungen entsprechend zu Untereinheiten zusammengefaßt sind. Dem integrierten Schaltkreis (Chip) 20 ist eine Ladelogik 30 zugeordnet be­ ziehungsweise übergeordnet, über die der integrierte Schaltkreis 20 programmiert und konfiguriert wird. Die Ladelogik 30 teilt letztlich dem integrierten Schaltkreis 20 mit, wie er arithmetisch-logisch zu arbeiten hat. Bezug­ nehmend auf die Fig. 1 bis 5 ist in Fig. 8 einerseits das SUBMACRO "X" entsprechend Fig. 4 und Fig. 5 hervorgehoben; andererseits ist auch ein MACRO "Y" entsprechend Fig. 1 und Fig. 2 angezeichnet, das als Einheit einem 8-Bit-Addierer entspricht.A complete integrated circuit (chip) 20 is shown in FIG . This integrated circuit 20 be available from a plurality in the orthogonal grid arrange ter cells 10 and has at its outer edges a ent speaking number of line terminals (pins) on the signals, in particular drive signals and data supplied leads and can be forwarded. In FIG. 8, in turn, the SUBMACRO "X" according to FIG. 5 / FIG. 6 is delimited; In addition, other SUBMACROS are separated, the specific functions and networks are summarized according to subunits. The integrated circuit (chip) 20 is assigned a charging logic 30 or higher, via which the integrated circuit 20 is programmed and configured. The charging logic 30 ultimately tells the integrated circuit 20 how to work arithmetically and logically. . Referring to Figures 1 to 5 is shown in Figure 8 on the one hand SUBMACRO "X" according to Figures 4 and 5 highlighted...; On the other hand, a MACRO "Y" corresponding to Fig. 1 and Fig. 2 is also indicated, which corresponds as a unit to an 8-bit adder.

Anhand von Fig. 9 beziehungsweise Fig. 10 soll im folgenden eine Rechnerstruktur beschrieben werden, die auf den im vorstehenden definierten und erläuterten integrierten Schaltkreis 20 aufbaut.A computer structure will be described below with reference to FIG. 9 or FIG. 10, which is based on the integrated circuit 20 defined and explained above.

Gemäß dem in Fig. 9 dargestellten ersten Ausführungsbei­ spiel ist - analog zur Anordnung der Zellen - im Orthogo­ nalraster eine Mehrzahl von integrierten Schaltkreisen 20 angeordnet, deren jeweils benachbarte über lokale BUS- Leitungen 21 miteinander gekoppelt beziehungsweise vernetzt sind. Die - beispielsweise aus sechzehn integrierten Schal­ tkreisen 20 bestehende - Rechnerstruktur weist Ein-/Aus­ gangsleitungen IO auf, über die der Rechner quasi mit der Außenwelt in Verbindung steht, d. h. korrespondiert. Der Rechner gemäß Fig. 9 weist ferner einen Speicher 22 auf, der dem dargestellten Ausführungsbeispiel entsprechend aus zwei separierten Speichern, zusammengesetzt aus jeweils RAM, ROM sowie einem Dual-Ported RAM als shared memory zu der Ladelogik geschaltet, besteht, die gleichermaßen als Schreib-Lese-Speicher oder auch nur als Lese-Speicher realisiert sein können. Der soweit beschriebenen Rechner­ struktur ist die Ladelogik 30 zu- beziehungsweise überge­ ordnet, mittels der die integrierten Schaltkreise (Daten­ flußprozessor) 20 programmiert und konfiguriert und ver­ netzt werden.According to the first game Ausführungsbei shown in Fig. 9 is - analogous to the arrangement of the cells - in Orthogo nalraster a plurality of integrated circuits 20 are arranged, each of which adjacent to each other via local bus lines 21 are coupled or networked. The - for example, from sixteen integrated scarf circling 20 existing - computer structure has input / output lines IO, via which the computer is quasi with the outside world in connection, ie corresponding. The computer according to FIG. 9 furthermore has a memory 22 , which according to the exemplary embodiment shown consists of two separate memories, each composed of RAM, ROM and a dual-ported RAM as shared memory to the charging logic, which functions equally as a write processor. Read memory or even as a read memory can be realized. The computer structure described so far is the charge logic 30- or superordinate orders, by means of which the integrated circuits (data flow processor) 20 are programmed and configured and ver networked.

Die Ladelogik 30 baut auf einem Transputer 31, d. h. einem Prozessor mit mikrocodiertem Befehlssatz auf, dem seiner­ seits ein Speicher 32 zugeordnet ist. Die Verbindung zwischen dem Transputer 31 und dem Datenflußprozessor basiert auf einer Schnittstelle 33 für die sogenannten Ladedaten, d. h. die Daten die den Datenflußprozessor aufgabenspezifisch programmieren und konfigurieren und einer Schnittstelle 34 für den bereits genannten Rechner­ speicher 22, d. h. den Shared-Memory-Speicher.The loading logic 30 is based on a transputer 31 , ie a processor with a microcoded instruction set, which in turn is assigned a memory 32 . The connection between the transputer 31 and the data flow processor is based on an interface 33 for the so-called load data, ie the data program the data flow processor task specific and configure and an interface 34 for the aforementioned computer memory 22 , ie the shared memory memory.

Die in Fig. 9 dargestellte Struktur stellt so einen kom­ pletten Rechner dar, der über die Ladelogik 30 jeweils fall- beziehungsweise aufgabenspezifisch programmiert und konfiguriert werden kann. Der Vollständigkeit halber sei noch angemerkt, daß - wie in Verbindung mit der Ladelogik 30 über Pfeile angedeutet - mehrere dieser Rechner ver­ netzt, d. h. miteinander gekoppelt werden können.The structure shown in FIG. 9 thus represents a complete computer which can be programmed and configured in each case via the charging logic 30 in a case-specific or task-specific manner. For completeness, it should be noted that - as indicated in connection with the charging logic 30 via arrows - several of these computers ver networked, that can be coupled together.

Ein weiteres Ausführungsbeispiel einer Rechnerstruktur ist in Fig. 10 dargestellt. Im Unterschied zu Fig. 9 sind dabei neben den lokalen BUS-Leitungen zwischen den benachbarten integrierten Schaltkreisen 20 noch übergeordnete zentrale BUS-Leitungen 23 vorgesehen, um zum Beispiel spezifische Ein- beziehungsweise Ausgangsprobleme lösen zu können. Auch der Speicher 22 (Shared-Memory) ist über zentrale BUS- Leitungen 23 mit den integrierten Schaltkreisen 20 verbun­ den, und zwar wie dargestellt jeweils mit Gruppen dieser integrierten Schaltkreise. Die in Fig. 10 dargestellte Rechnerstruktur weist die gleiche Ladelogik 30 auf, wie sie anhand von Fig. 9 erläutert wurde.Another embodiment of a computer structure is shown in FIG . In contrast to FIG. 9, in addition to the local BUS lines between the adjacent integrated circuits 20 , higher-level central BUS lines 23 are provided in order to be able to solve specific input or output problems, for example. Also, the memory 22 (shared memory) is verbun via central BUS lines 23 to the integrated circuits 20 , as shown in each case with groups of these integrated circuits. The computer structure shown in FIG. 10 has the same charging logic 30 as explained with reference to FIG. 9.

In Verbindung mit Fig. 11a soll eine auf erfindungsgemäßen Datenflußprozessoren aufgebaute Additionsschaltung erläu­ tert werden. Ausgegangen wird von zwei Zahlenreihen An und Bn für sämtliche n zwischen 0 und 9; die Aufgabe besteht darin, die Summe Ci = Ai + Bi zu bilden, wobei der Index i die Werte 0 ⇐n < 9 annehmen kann.In connection with FIG. 11a, an adder circuit constructed on data flow processors according to the invention is intended to be explained. The starting point is two series of numbers An and Bn for all n between 0 and 9; the task is to form the sum Ci = Ai + Bi, where the index i can assume the values 0 ⇐n <9.

Bezugnehmend auf die Darstellung nach Fig. 11a ist die Zahlenreihe An in einem ersten Speicher RAM1 abgespeichert und zwar zum Beispiel ab einer Speicheradresse 1000h; die Zahlenreihe Bn ist in einem Speicher RAM2 an einer Speicheradresse 0dfa0h abgespeichert; die Summe Cn wird in den RAM1 eingeschrieben und zwar unter der Adresse 100ah.Referring to the illustration of Fig. 11a, the number series An is stored in a first memory RAM1, for example, from a memory address 1000h; the number series Bn is stored in a memory RAM2 at a memory address 0dfa0h; the sum Cn is written in the RAM1 under the address 100ah.

Es ist ein weiterer Zähler 49 zugeschaltet, der lediglich die einzelnen durch die Steuerschaltung freigegebenen Taktzyklen hochzählt. Dies soll im Weiteren zur Verdeut­ lichung der Umkonfigurierbarkeit einzelner MACROs ohne Beeinflussung der an der Umkonfigurierung nicht beteiligten MACROs dienen.A further counter 49 is switched on, which only counts up the individual clock cycles enabled by the control circuit. This will serve to clarify the reconfigurability of individual MACROs without influencing the MACROs not involved in the reconfiguration.

Fig. 11a zeigt zunächst die eigentliche Additionsschaltung 40, die aus einem ersten Register 41 zur Aufnahme der Zahlenreihe An und einem zweiten Register 42 zur Aufnahme der Zahlenreihe Bn besteht. Den beiden Registern 41/42 ist ein 8-Bit-Addierer entsprechend dem in Fig. 1 darge­ stellten MACRO 1 nachgeschaltet. Der Ausgang des MACRO 1 führt über eine Treiberschaltung 43 zurück zum Speicher RAM1. Die Takt- beziehungsweise Zeitsteuerung der Additionsschaltung 40 erfolgt über eine von einem Taktgenerator T angesteuerte Zeitsteuerung (STATEMACHINE) 45, die mit den Registern 41, 42 und der Treiberschaltung 43 verbunden ist. Fig. 11a first shows the actual addition circuit 40 , which consists of a first register 41 for receiving the number series An and a second register 42 for receiving the number series Bn. The two registers 41/42 , an 8-bit adder according to the presented in Fig. 1 Darge MACRO 1 is connected downstream. The output of the MACRO 1 leads via a driver circuit 43 back to the memory RAM1. The timing of the addition circuit 40 via a controlled by a clock generator T timing (STATEMACHINE) 45 , which is connected to the registers 41 , 42 and the driver circuit 43 .

Die Additionsschaltung 40 wird funktional durch eine Adreß­ schaltung 46 zur Generierung der Adreßdaten für die abzu­ speichernden Additionsergebnisse ergänzt. Die Adreßschal­ tung 46 besteht ihrerseits aus drei MACROs 1 (gemäß Fig. 1) zur Bildung der Adreßdaten, wobei diese MACROs 1 wie folgt geschaltet sind: Über jeweils einen Eingang werden die zu verknüpfenden Adressen für An, Bn, Cn zugeführt. Diese Adressen werden mit den Ausgangssignalen eines Zählers 47 addiert und mit der Statemachine 45 so verknüpft, daß am Ausgang die neue Zieladresse ansteht. Der Zähler 47 und der Komparator 48 haben dabei die Aufgabe sicherzustellen, daß jeweils die richtigen Summanden verknüpft werden und daß jeweils am Ende der Zahlenreihen, d. h. bei n = 9 abge­ brochen wird. Ist die Addition vollendet, so wird in der Zeitsteuerung 45 ein STOP-Signal generiert und die Schal­ tung passiv geschaltet. Ebenso kann das STOP-Signal als Eingangssignal für eine Synchronisations-Schaltung ver­ wendet werden, indem die Synchronisationslogik anhand dieses Signals erkennen kann, daß die Gesamtfunktion "Addieren" gemäß dem nachfolgend beschriebenen ML1 Programm beendet ist und die MACROs somit durch neue ersetzt werden können (zum Beispiel könnte STOP das Signal Sync5 sein).The addition circuit 40 is functionally supplemented by an address circuit 46 for generating the address data for the addition results to be stored. The Adreßschal device 46 in turn consists of three MACROs 1 (as shown in FIG. 1) for forming the address data, these MACROs 1 are connected as follows: About one input to be linked addresses for An, Bn, Cn are supplied. These addresses are added to the output signals of a counter 47 and linked to the state machine 45 so that the new destination address is present at the output. The counter 47 and the comparator 48 have the task to ensure that each of the correct summands are linked and that in each case at the end of the series of numbers, that is broken off at n = 9 abge. If the addition is completed, then in the time control 45, a STOP signal is generated and the circuit switched passive. Similarly, the STOP signal can be used as an input signal for a synchronization circuit ver in that the synchronization logic can recognize from this signal that the total function "Add" according to the ML1 program described below is completed and the MACROs can thus be replaced by new ( for example, STOP could be the signal Sync5).

Der Zeitablauf in der Zeitsteuerung 45 (STATEMACHINE) läßt sich dabei wie folgt darstellen, wobei noch anzumerken ist, daß in der Zeitsteuerung 45 eine Verzögerungszeit T (in Form von Taktzyklen) zwischen der Adreßgenerierung und dem Datenerhalt implementiert ist:The time sequence in the time control 45 (STATEMACHINE) can be represented as follows, wherein it should also be noted that in the time control 45 a delay time T (in the form of clock cycles) is implemented between the address generation and the data retention:

  • - Im Zyklus 1 wird jeweils der Zähler 47 um 1 erhöht und im Komparator 48 wird geprüft, ob n < 9 erreicht ist; syn­ chron zu diesen Operationen werden die Adressen für A, B, C berechnet;In cycle 1, counter 47 is incremented by 1 and comparator 48 checks whether n <9 is reached; synchronously with these operations, the addresses for A, B, C are calculated;
  • - im Zyklus (T + 1) werden die Summanden A, B ausgelesen und addiert;- In the cycle (T + 1) the summands A, B are read out and added;
  • - im Zyklus (T + 2) wird die Summe C abgespeichert.- in the cycle (T + 2) the sum C is stored.

Mit anderen Worten heißt dies, daß die Operationsschleife und die eigentliche Addition gerade ( T + 2) Taktzyklen erfordert. Im allgemeinen sind für T 2 . . . 3 Takte erfor­ derlich, so daß verglichen mit den herkömmlichen Prozes­ soren (CPU), die im allgemeinen 50 bis mehrere 100 Taktzyklen bedingen, eine ganz wesentliche Rechenzeit- Reduzierung möglich wird.In other words, this means that the operation loop and the actual addition is even (T + 2) clock cycles requires. In general, for T 2. , , 3 bars required so that compared with the conventional Prozes soren (CPU), which is generally 50 to several hundred Clock cycles, a very important computation time Reduction is possible.

Die anhand von Fig. 11 aufgezeigte Konfiguration soll im folgenden über eine hypothetische MACRO-Sprache ML1 nochmals erläutert werden:
Es existieren die Zahlenreihen An und Bn
The configuration shown with reference to FIG. 11 will be explained again below using a hypothetical MACRO language ML1:
There are the number series An and Bn

n: 0 ⇐ n ⇐ 9n: 0 ⇐ n ⇐ 9

Es sollen die Summen Ci = Ai + Bi mit I ∈ N gebildet werden.
const n = 9;
array A [n] in RAM [1] at 1000h;
array B [n] in RAM [2] at 0dfa0h;
array C [n] in RAM [1] at 100ah;
for i = 0 to n with (A [i] , B [i] , C [i])
Δ1;
C = Δ1 = A + B;
next;
RAM1 ist der 1. Speicherblock
RAM2 ist der 2. Speicherblock
at folgt die Basisadresse der Arrays
for ist der Schleifenbeginn
next ist das Schleifenende
with ( ) folgen die Variablen, deren Adressen durch die Zählvariable i bestimmt werden
Δ T folgt die Verzögerungszeit für eine Statemachine in Taktzyklen.
The sums Ci = Ai + Bi with I ∈ N are to be formed.
const n = 9;
array A [n] in RAM [1] at 1000h;
array B [n] in RAM [2] at 0dfa0h;
array C [n] in RAM [1] at 100ah;
for i = 0 to n with (A [i], B [i], C [i])
Δ1;
C = Δ1 = A + B;
next;
RAM1 is the 1st memory block
RAM2 is the 2nd memory block
at follows the base address of the arrays
for is the beginning of the loop
next is the loop end
with () are followed by the variables whose addresses are determined by the count variable i
Δ T follows the delay time for a state machine in clock cycles.

Das Timing der Statemachine sieht demnach folgendermaßen aus:The timing of the state machine looks accordingly as follows:

Zykluscycle Aktivitätactivity 11 Zähler erhöhen, Vergleich auf < 9 (ja ⇒ Abbruch) und Adressen für A, B, C, berechnenIncrease counter, compare to <9 (yes ⇒ cancel) and calculate addresses for A, B, C T + 1T + 1 A, B, holen und addierenA, B, bring and add T + 2T + 2 Nach C speichernSave to C

Das heißt - wie bereits erwähnt - die Schleife und die Addition benötigen gerade einmal T + 2 Taktzyklen.That means - as already mentioned - the loop and the Addition just needs T + 2 clock cycles.

Fig. 11b zeigt den groben Aufbau der einzelnen Funktionen (MACROs) in einem DFP. Die MACROs sind in ihrer etwaigen Lage und Größe eingezeichnet und mit den anhand von Fig. 11a erläuterten entsprechenden Nummern versehen. Fig. 11b shows the rough structure of the individual functions (MACROs) in a DFP. The MACROs are shown in their possible position and size and provided with the corresponding numbers explained with reference to FIG. 11a.

Fig. 11c zeigt den groben Aufbau der einzelnen Funktionen auf die RAM-Blöcke 1 und 2: Die Summanden werden nach­ einander in aufsteigender Reihenfolge aus den RAM-Blöcken 1 und 2 ab Adresse 1000h beziehungsweise 0dfa0h gelesen und in RAM-Block 1 ab Adresse 100ah gespeichert. Zudem sind die Zähler 47 und 49 gegeben, beide zählen während des Ablaufs der Schaltung von 0 bis 9. Fig. 11c shows the rough structure of the individual functions on the RAM blocks 1 and 2: The summands are successively read from the RAM blocks 1 and 2 from address 1000h or 0dfa0h and in RAM block 1 from address 100ah in ascending order saved. In addition, the counters 47 and 49 are given, both count from 0 to 9 during the course of the circuit.

Nach Beendigung des beschriebenen Programms soll ein neues Programm geladen werden, das die Ergebnisse weiterverwer­ tet. Die Umladung soll zur Laufzeit erfolgen. Das Programm ist im Folgenden gegeben: After completion of the program described is a new Program that will continue to use the results tet. The transhipment should take place at runtime. The program is given below:  

Es existieren die Zahlenreihen An und Bn, wobei An durch das Ergebnis Cn des vorher ausgeführten Programms gegeben ist:There are the number series An and Bn, where An through given the result Cn of the previously executed program is:

n: 0⇐n⇐9n: 0⇐n⇐9

Es sollen die Produkte Ci=Ai * Bi mit I ∈ N gebildet werden.
const n=9
array A[n] in RAM[1] at 100ah
array B[n] in RAM[2] at 0dfa0h
array C[n] in RAM[1] at 1015h
for i=0 to n with (A[i] , B[i] , c[i])
Δ1;
C= Δ1=A * B;
next;
Die Beschreibung der einzelnen Befehle ist bereits bekannt,
* symbolisiert die Multiplikation.
The products Ci = Ai * Bi with I ∈ N are to be formed.
const n = 9
array A [n] in RAM [1] at 100ah
array B [n] in RAM [2] at 0dfa0h
array C [n] in RAM [1] at 1015h
for i = 0 to n with (A [i], B [i], c [i])
Δ1;
C = Δ1 = A * B;
next;
The description of the individual commands is already known
* symbolizes the multiplication.

Die MACRO-Struktur ist in Fig. 18a beschrieben, Fig. 18b gibt in bekannter Weise die Lage und Größe der einzelnen MACROs auf dem Chip an, besonders zu beachten ist die Größe des Multiplizierers 2 in Vergleich zu Addierer 1 aus Fig. 11b. In Fig. 18c ist erneut die Auswirkung der Funktion auf den Speicher aufgezeigt, Zähler 47 zählt erneut von 0 bis 9, d. h. er wird beim Nachladen der MACROs zurückgesetzt.The MACRO structure is described in FIG. 18a, FIG. 18b indicates in a known manner the position and size of the individual MACROs on the chip, the size of the multiplier 2 in particular being considered in comparison with adder 1 from FIG. 11b. FIG. 18c again shows the effect of the function on the memory. Counter 47 again counts from 0 to 9, ie it is reset when the MACROs are reloaded.

Besonders zu beachten ist der Zähler 49. Angenommen, das Umladen der MACROs beträgt 10 Taktzyklen. Dann läuft der Zähler 49 von 9 auf 19, da der Baustein dynamisch umgeladen wird, d. h. nur die umzuladenden Teile werden gestoppt, der Rest arbeitet weiter. Das führt nun dazu, daß der Zähler während des Programmablaufs von 19 auf 29 hochläuft. (Hier­ mit soll das dynamische unabhängige Umladen demonstriert werden, in jedem bisher bekannten Baustein würde der Zähler erneut von 0 auf 9 laufen, da er zurückgesetzt wird).Of particular note is the counter 49 . Suppose the reload of MACROs is 10 clock cycles. Then, the counter 49 runs from 9 to 19, because the block is dynamically reloaded, ie only the parts to be reloaded are stopped, the rest continues to work. This will cause the counter to run from 19 to 29 during the program. (Here the dynamic independent reloading is to be demonstrated with, in each module known so far, the counter would again run from 0 to 9 because it is reset).

Bei näherer Betrachtung des Problems stellt sich die Frage, warum nicht beide Operationen, die Addition und die Multi­ plikation in einem Zyklus durchgeführt werden, also die Operation:A closer look at the problem raises the question why not both operations, the addition and the multi plikation be performed in a cycle, so the Surgery:

Es existieren die Zahlenreihen An und Bn, wobei An durch das Ergebnis von Cn des vorher ausgeführten Programms gege­ ben ist:There are the number series An and Bn, where An through the result of Cn of the previously executed program gege Ben is:

n: 0⇐n⇐9n: 0⇐n⇐9

Es sollen die Produkte Ci=(Ai+Bi) * Bi mit I ∈ N gebildet werden.
path D;
const n=9;
array A[n] in RAM[1] at 1000h
array B[n] in RAM[2] at 0dfa0h
array C[n] in RAM[1] at 100ah
for i=0 to n with (A[i] , B[i] , C[i])
Δ1;
D=Δ1=AbB;
C=Δ1=D * B;
next;
The products Ci = (Ai + Bi) * Bi with I ∈ N are to be formed.
path D;
const n = 9;
array A [n] in RAM [1] at 1000h
array B [n] in RAM [2] at 0dfa0h
array C [n] in RAM [1] at 100ah
for i = 0 to n with (A [i], B [i], C [i])
Δ1;
D = Δ1 = AbB;
C = Δ1 = D * B;
next;

path D definiert einen internen nicht aus den DFP herausge­ führten Doppelpfad. Die Operation benötigt wegen einem zu­ sätzlichen Δ1 einen Taktzyklus mehr als vorher, ist ins­ gesamt jedoch schneller als die beiden obigen Programme in Folge ausgeführt, da zum einen die Schleife nur einmal durchlaufen wird, zum zweiten nicht umgeladen wird. path D does not define an internal one out of the DFP led double path. The surgery needed because of one too additional Δ1 one clock cycle more than before, is in the overall, however, faster than the two programs above Sequence executed, because on the one hand, the loop only once is passed through, the second is not reloaded.  

Prinzipiell könnte das Programm auch so formuliert werden:
const n=9;
array A[n] in RAM[1] at 1000h
array B[n] in RAM[2] at 0dfa0h
array C[n] in RAM[i] at 100ah
for i=0 to n with (A[i], B[i], C[i])
Δ- 1;
C=Δ2=(A+B) * B;
next;
In principle, the program could also be formulated as follows:
const n = 9;
array A [n] in RAM [1] at 1000h
array B [n] in RAM [2] at 0dfa0h
array C [n] in RAM [i] at 100ah
for i = 0 to n with (A [i], B [i], C [i])
Δ- 1;
C = Δ2 = (A + B) * B;
next;

Sind die Gatterlaufzeiten des Addierers und des Multipli­ zierers zusammen kleiner als ein Taktzyklus, kann die Ope­ ration (A+B) * B auch in einem Taktzyklus durchgeführt wer­ den, was zu einer weiteren erheblichen Geschwindigkeitssteigerung führt:
const n=9;
array A[n] in RAM[1] at 1000h
array B[n] in RAM[2] at Odfa0h
array C[n] in RAM[1] at 100ah
for i=0 to n with (A[i], B[i], C[i])
Δ1;
C=Δ1=(A+B) * B;
next;
If the gate times of the adder and of the multiplier together are less than one clock cycle, the operation (A + B) * B can also be carried out in one clock cycle, which leads to a further considerable speed increase:
const n = 9;
array A [n] in RAM [1] at 1000h
array B [n] in RAM [2] at Odfa0h
array C [n] in RAM [1] at 100ah
for i = 0 to n with (A [i], B [i], C [i])
Δ1;
C = Δ1 = (A + B) * B;
next;

Anhand von Fig. 12 soll ein einfaches Beispiel eines Zel­ lenaufbaus erläutert werden. Die Zelle 10 umfaßt zum Bei­ spiel ein UND-Glied 51, ein ODER-Glied 52, ein XOR-Glied 53, einen Inverter 54 sowie eine Registerzelle 55. Die Zel­ le 10 weist darüberhinaus eingangsseitig zwei Multiplexer 56, 57 mit (den sechzehn Eingängen der Zelle entsprechend Fig. 6) zum Beispiel je sechzehn Eingangsanschlüssen IN1, IN2 auf. Über diesen (16 : 1)-Multiplexer 56/57 werden jeweils die den genannten logischen Gliedern UND, ODER, XOR 51 . . . 53 zuzuführenden Daten ausgewählt. Diese logischen Glieder sind ausgangsseitig mit einem (3 : 1)-Multiplexer 58 gekoppelt, der seinerseits mit dem Eingang des Inverters 54, einem Eingang der Registerzelle 55 und einem weiteren (3 : 16)-Multiplexer 59 gekoppelt ist. Der letztgenannte Multiplexer 59 ist zusätzlich mit dem Ausgang des Inverters 54 und einem Ausgang der Registerzelle 55 verbunden und gibt das Ausgangssignal OUT ab.Referring to Fig. 12, a simple example of a Zel lenaufbaus will be explained. The cell 10 includes the case of an AND gate 51 , an OR gate 52 , an XOR gate 53 , an inverter 54 and a register cell 55th The Zel le 10 also has on the input side two multiplexers 56 , 57 with (the sixteen inputs of the cell corresponding to FIG. 6), for example, sixteen input terminals IN1, IN2. By means of this (16: 1) -multiplexer 56/57 , in each case the said logical elements AND, OR, XOR 51 . , , 53 to be supplied data selected. These logic gates are coupled on the output side to a (3: 1) multiplexer 58 , which in turn is coupled to the input of the inverter 54 , an input of the register cell 55 and another (3:16) multiplexer 59 . The latter multiplexer 59 is additionally connected to the output of the inverter 54 and an output of the register cell 55 , and outputs the output signal OUT.

Der Vollständigkeit halber sei angemerkt, daß die Register­ zelle 55 mit einem Reset-Eingang R und einem Takteingang gekoppelt ist.For completeness, it should be noted that the register cell 55 is coupled to a reset input R and a clock input.

Dem im vorstehenden erläuterten Zellenaufbau, d. h. der Zelle 10 ist nun eine Ladelogik 30 übergeordnet, die mit den Multiplexern 56, 57, 58 und 59 verbunden ist und diese den gewünschten Funktionen entsprechend ansteuert.The above-explained cell structure, ie the cell 10 is now superordinate a Ladelogik 30 which is connected to the multiplexers 56 , 57 , 58 and 59 and this controls the desired functions accordingly.

Sollen zum Beispiel die Signale A2 mit B5 verundet werden, so werden die Multiplexer 56, 57 den Leitungen "ZWEI" be­ ziehungsweise "FÜNF" entsprechend aktiv geschaltet; die Summanden gelangen dann zum UND-Glied 51 und werden bei entsprechender Aktivierung der Multiplexer 58, 59 am Aus­ gang OUT abgegeben. Soll zum Beispiel eine NAND-Verknüpfung durchgeführt werden, so schaltet der Multiplexer 58 zum In­ verter 54 und am Ausgang OUT steht dann das negierte UND- Ergebnis an.If, for example, the signals A2 are to be rounded to B5, the multiplexers 56 , 57 are switched to the lines "TWO" or "FIVE"accordingly; the summands then go to the AND gate 51 and are given at the appropriate output of the multiplexer 58 , 59 at the output OUT. If, for example, a NAND operation is to be performed, the multiplexer 58 switches to the inverter 54 and the output OUT is then the negated AND result.

Claims (8)

1. Datenverarbeitungseinrichtung, wobei ein (im folgenden Datenflußprozessor - DFP - genannter) integrierter Schaltungskreis (Chip) mit einer Vielzahl insbesondere orthogonal zueinander an­ geordneter homogen strukturierter Zellen mit je einer Mehrzahl jeweils logisch gleicher und strukturell iden­ tisch angeordneter Bausteine vorgesehen ist, dessen Zellen zeilen- und spaltenweise, gegebenenfalls gruppenweise zusammengefaßt, mit Ein-/Ausgangs­ anschlüssen des integrierten Schaltkreises verbunden sind, dadurch gekennzeichnet, daß den Zellen eine Ladelogik zugeordnet ist, über die sie je für sich und gegebenenfalls gruppenweise zusam­ mengefaßt so programmierbar (konfigurierbar) sind, daß beliebige logische Funktionen und/oder Vernetzungen untereinander verifizierbar sind, und zwar derart, daß eine Manipulation der DFP-Konfiguration während des Betriebes (oder zur Laufzeit), d. h. die Modifikation funktioneller Teile (MACROS) des DFPs erfolgen kann, ohne daß andere funktionelle Teile angehalten werden müssen oder in ihrer Funktion beeinträchtigt werden.1. Data processing device, wherein a (in the following data flow processor - DFP - said) integrated circuit circuit (chip) is provided with a plurality, in particular orthogonal to each other to ordered homogeneous structured cells, each having a plurality of logically identical and structurally identical table arranged components whose cells line - and in columns, optionally combined in groups, are connected to input / output terminals of the integrated circuit, characterized in that the cells is associated with a charging logic, they summarized by themselves and possibly groupwise together so programmable (configurable) that any logical functions and / or interconnections are verifiable with each other, such that a manipulation of the DFP configuration during operation (or at runtime), ie the modification of functional parts (MACROS) of the DFP can be done without other functional parts must be stopped or impaired in their function. 2. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik mit Speichermitteln gekoppelt ist, über die die Konfiguration der Zellen spezifizierbar ist.2. Data processing device according to claim 1, characterized,  that the charging logic is coupled to storage means, about which the configuration of the cells can be specified is. 3. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, daß die Ladelogik aus einem Prozessor besteht, der den gesamten Programmablauf auf der Grundlage von in ver­ schiedenen Speichern abgelegten Daten und Programmen im Sinne einer Harvard-Struktur verwaltet.3. Data processing device according to one of the claims 1 to 2, characterized, that the loading logic consists of a processor that the entire program based on in ver various stored data and programs in the Managed according to a Harvard structure. 4. Datenverarbeitungseinrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Ladelogik ihrerseits aus Zellen mit je einer Mehrzahl jeweils logisch gleicher und strukturell identisch angeordneter Bausteine aufgebaut ist.4. Data processing device according to claim 3, characterized, that the charge logic in turn from cells with one each The majority are logically the same and structural is constructed identically arranged blocks. 5. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 oder 4, dadurch gekennzeichnet, daß die Zellen dynamisch während eines Programmablaufs umkonfigurierbar sind, ohne daß die zu bearbeitenden Daten selbst beeinflußt werden.5. Data processing device according to one of the claims 1 or 4, characterized, that the cells dynamically during a program run can be reconfigured without the to be edited Data itself. 6. Datenverarbeitungseinrichtung, wobei ein (im folgenden Datenflußprozessor - DFP - genannter) integrierter Schaltungskreis (Chip) mit einer Vielzahl insbesondere orthogonal zueinander an­ geordneter homogen strukturierter Zellen mit je einer Mehrzahl jeweils logisch gleicher und strukturell iden­ tisch angeordneter Bausteine vorgesehen ist, dessen Zellen zeilen- und spaltenweise, gegebenenfalls gruppenweise zusammengefaßt, mit Ein-/Ausgangs­ anschlüssen des integrierten Schaltkreises verbunden sind, dadurch gekennzeichnet, daß eine Mehrzahl von ihnen in Kaskadenform koppelbar sind.6. data processing device, where a (in the following data flow processor - DFP - mentioned) integrated circuit (chip) with a plurality in particular orthogonal to each other ordered homogeneously structured cells with one each The majority are logically identical and structurally identical is arranged table arranged blocks, its cells in rows and columns, optionally Grouped together, with input / output connected connections of the integrated circuit are,  characterized, a plurality of them can be coupled in cascade form are. 7. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 bis 6, gekennzeichnet durch, die Zuordnung geeigneter Daten-Ein-/Ausgabe-Einheiten und mindestens eines Speichers zum Aufbau eines (kom­ plexen, kompletten) Rechenwerks.7. Data processing device according to one of the claims 1 to 6, marked by, the assignment of suitable data input / output units and at least one memory for building a (com plexen, complete) calculator. 8. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Funktionen der Ein-/Ausgabeeinheiten partiell im integrierten Schaltkreis (Chip) implementierbar sind.8. Data processing device according to one of the claims 1 to 7, characterized, that the functions of the input / output units partially implemented in integrated circuit (chip) are.
DE4416881A 1993-05-13 1994-05-13 Method for operating a data processing device Expired - Lifetime DE4416881C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE4416881A DE4416881C2 (en) 1993-05-13 1994-05-13 Method for operating a data processing device
DE4447706A DE4447706B4 (en) 1993-05-13 1994-05-13 Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip
DE4447707A DE4447707B4 (en) 1993-05-13 1994-05-13 Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4316036 1993-05-13
DE4416881A DE4416881C2 (en) 1993-05-13 1994-05-13 Method for operating a data processing device

Publications (2)

Publication Number Publication Date
DE4416881A1 true DE4416881A1 (en) 1994-11-17
DE4416881C2 DE4416881C2 (en) 1998-03-19

Family

ID=6488009

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4416881A Expired - Lifetime DE4416881C2 (en) 1993-05-13 1994-05-13 Method for operating a data processing device

Country Status (1)

Country Link
DE (1) DE4416881C2 (en)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035997A1 (en) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Parallel processor
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
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.)
WO1998035294A2 (en) * 1997-02-11 1998-08-13 Pact Informationstechnologie Gmbh 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
DE19704044A1 (en) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Address generation with systems having programmable modules
US6081903A (en) * 1997-02-08 2000-06-27 Pact Gmbh Method of the self-synchronization of configurable elements of a programmable unit
US6119181A (en) * 1996-12-20 2000-09-12 Pact Gmbh I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
EP1082659A1 (en) * 1999-03-31 2001-03-14 Koninklijke Philips Electronics N.V. Data processing using various data processors
WO2002071196A2 (en) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Methods and devices for treating and processing data
WO2003025781A2 (en) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Router
US6571381B1 (en) 1998-02-25 2003-05-27 Pact Xpp Technologies Ag Method for deadlock-free configuration of dataflow processors and modules with a two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
DE10243322B4 (en) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analog reconfigurable data processing device
US6859869B1 (en) 1995-11-17 2005-02-22 Pact Xpp Technologies Ag Data processing system
DE19722365B4 (en) * 1996-05-28 2005-07-28 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Reconfigurable computing component
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
EP1845623A2 (en) 2000-10-06 2007-10-17 PACT XPP Technologies AG Method and device
US7669035B2 (en) * 2004-01-21 2010-02-23 The Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
EP2224330A1 (en) 2001-06-20 2010-09-01 Krass, Maren Method for processing data
EP2226732A2 (en) 2000-06-13 2010-09-08 Krass, Maren Cache hierarchy for a multicore processor
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9274984B2 (en) 2002-09-06 2016-03-01 Pact Xpp Technologies Ag Multi-processor with selectively interconnected memory units
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9690747B2 (en) 1999-06-10 2017-06-27 PACT XPP Technologies, AG Configurable logic integrated circuit having a multidimensional structure of configurable elements
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data

Families Citing this family (19)

* 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
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
EP1329816B1 (en) 1996-12-27 2011-06-22 Richter, Thomas Method for automatic dynamic unloading of data flow processors (dfp) as well as modules with bidimensional or multidimensional programmable cell structures (fpgas, dpgas or the like)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
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
DE19843640A1 (en) 1998-09-23 2000-03-30 Siemens Ag Procedure for configuring a configurable hardware block
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
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
WO2003060747A2 (en) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurable processor
AU2003214003A1 (en) 2002-02-18 2003-09-09 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
AU2003286131A1 (en) 2002-08-07 2004-03-19 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
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
EP1974265A1 (en) 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardware definition method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
WO1990011648A1 (en) * 1989-03-17 1990-10-04 Algotronix Limited Configurable cellular array
EP0539595A1 (en) * 1991-04-09 1993-05-05 Fujitsu Limited Data processor and data processing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
WO1990011648A1 (en) * 1989-03-17 1990-10-04 Algotronix Limited Configurable cellular array
EP0539595A1 (en) * 1991-04-09 1993-05-05 Fujitsu Limited Data processor and data processing method

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859869B1 (en) 1995-11-17 2005-02-22 Pact Xpp Technologies Ag Data processing system
WO1996035997A1 (en) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Parallel processor
DE19722365B4 (en) * 1996-05-28 2005-07-28 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Reconfigurable computing component
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
US6425068B1 (en) 1996-12-09 2002-07-23 Pact Gmbh Unit for processing numeric and logic operations for use in central processing units (cpus), multiprocessor systems, data-flow processors (dsps), systolic processors and field programmable gate arrays (epgas)
EP2166459A1 (en) 1996-12-09 2010-03-24 PACT XPP Technologies AG Data processing chip with a plurality of reconfigurable cells which have a power saving mode
US6119181A (en) * 1996-12-20 2000-09-12 Pact Gmbh I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US6088795A (en) * 1996-12-27 2000-07-11 Pact Gmbh Process for automatic dynamic reloading of data flow processors (DFPs) and units with two or three-dimensional programmable cell architectures (FPGAs, DPGAs and the like)
EP0948842B1 (en) * 1996-12-27 2003-06-18 Pact Informationstechnologie GmbH METHOD FOR AUTOMATIC DYNAMIC UNLOADING OF DATA FLOW PROCESSORS (DFP) AS WELL AS MODULES WITH BIDIMENSIONAL OR MULTIDIMENSIONAL PROGRAMMABLE CELL STRUCTURES (EPGAs, DPGAs OR THE LIKE)
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.)
US6038650A (en) * 1997-02-04 2000-03-14 Pactgmbh Method for the automatic address generation of modules within clusters comprised of a plurality of these modules
DE19704044A1 (en) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Address generation with systems having programmable modules
US6081903A (en) * 1997-02-08 2000-06-27 Pact Gmbh Method of the self-synchronization of configurable elements of a programmable unit
WO1998035294A3 (en) * 1997-02-11 1998-10-22 Pact Inf Tech Gmbh 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
EP1398706A2 (en) * 1997-02-11 2004-03-17 PACT XPP Technologies AG 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
US6405299B1 (en) 1997-02-11 2002-06-11 Pact Gmbh Internal bus system for DFPS and units with two- or multi-dimensional programmable cell architectures, for managing large volumes of data with a high interconnection complexity
EP1398706A3 (en) * 1997-02-11 2006-04-12 PACT XPP Technologies AG Internal bus system for programmable cell structures
WO1998035294A2 (en) * 1997-02-11 1998-08-13 Pact Informationstechnologie Gmbh 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
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
EP2293193A1 (en) 1998-02-25 2011-03-09 Richter, Thomas Method and device for data processing
US6571381B1 (en) 1998-02-25 2003-05-27 Pact Xpp Technologies Ag Method for deadlock-free configuration of dataflow processors and modules with a two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
EP1082659A1 (en) * 1999-03-31 2001-03-14 Koninklijke Philips Electronics N.V. Data processing using various data processors
US9690747B2 (en) 1999-06-10 2017-06-27 PACT XPP Technologies, AG Configurable logic integrated circuit having a multidimensional structure of configurable elements
EP2226732A2 (en) 2000-06-13 2010-09-08 Krass, Maren Cache hierarchy for a multicore processor
EP1845623A2 (en) 2000-10-06 2007-10-17 PACT XPP Technologies AG Method and device
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2002071196A2 (en) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Methods and devices for treating and processing data
EP2224330A1 (en) 2001-06-20 2010-09-01 Krass, Maren Method for processing data
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
WO2003025781A2 (en) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Router
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US9274984B2 (en) 2002-09-06 2016-03-01 Pact Xpp Technologies Ag Multi-processor with selectively interconnected memory units
US10296488B2 (en) 2002-09-06 2019-05-21 Pact Xpp Schweiz Ag Multi-processor with selectively interconnected memory units
DE10243322B4 (en) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analog reconfigurable data processing device
US7669035B2 (en) * 2004-01-21 2010-02-23 The Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device

Also Published As

Publication number Publication date
DE4416881C2 (en) 1998-03-19

Similar Documents

Publication Publication Date Title
DE4416881A1 (en) Data processing device
EP0948842B1 (en) METHOD FOR AUTOMATIC DYNAMIC UNLOADING OF DATA FLOW PROCESSORS (DFP) AS WELL AS MODULES WITH BIDIMENSIONAL OR MULTIDIMENSIONAL PROGRAMMABLE CELL STRUCTURES (EPGAs, DPGAs OR THE LIKE)
DE2716369C2 (en)
DE69827589T2 (en) Configurable processing assembly and method of using this assembly to build a central processing unit
EP1329816B1 (en) Method for automatic dynamic unloading of data flow processors (dfp) as well as modules with bidimensional or multidimensional programmable cell structures (fpgas, dpgas or the like)
DE69534812T2 (en) Programmable logic device storing more than one configuration and means for switching the configuration
DE69822796T2 (en) USER PROGRAMMABLE PROCESSOR
DE69637399T2 (en) Coarse-grained semiconductor integrated circuit with look-up tables
DE4205524C2 (en) Programmable logic controller
EP0961980B1 (en) Method for self-synchronization of configurable elements of a programmable component
DE2755273C2 (en)
DE19704044A1 (en) Address generation with systems having programmable modules
DE102004045527B4 (en) Configurable logic circuitry
DE19639629C2 (en) Programmable, monolithic, integrated logic circuit and method for implementing the same
DE602004009324T2 (en) INTEGRATED DATA PROCESSING CIRCUIT WITH MULTIPLE PROGRAMMABLE PROCESSORS
DE102005005073B4 (en) Computer device with reconfigurable architecture for the parallel calculation of arbitrary algorithms
EP1466264B1 (en) Method for configuration of the connection between data processing cells
DE60221515T2 (en) STORAGE SYSTEM FOR GRINDING ACCESSORIES AS WISH
DE4447706B4 (en) Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip
DE4447707B4 (en) Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip
DE10347975B4 (en) Setup of programmable logic
AT354783B (en) PROGRAMMABLE CIRCUIT FOR DATA PROCESSING
EP1789889B1 (en) Computer with a reconfigurable architecture for integrating a global cellular automaton
EP1038235B1 (en) Device for hierarchical connection of a plurality of functional units in a processor
DE602004005806T2 (en) Serial memory with means for integrating an extended memory array

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: VORBACH, MARTIN, 76149 KARLSRUHE, DE MUENCH, ROBER

8181 Inventor (new situation)

Free format text: VORBACH, MARTIN, 76149 KARLSRUHE, DE

8127 New person/name/address of the applicant

Owner name: PACT INFORMATIONSTECHNOLOGIE GMBH, 81545 MUENCHEN,

8172 Supplementary division/partition in:

Ref document number: 4447707

Country of ref document: DE

Ref document number: 4447706

Country of ref document: DE

Q171 Divided out to:

Ref document number: 4447707

Country of ref document: DE

Ref document number: 4447706

Country of ref document: DE

8181 Inventor (new situation)

Free format text: VORBACH, MARTIN, 76149 KARLSRUHE, DE MUENCH, ROBERT, 76149 KARLSRUHE, DE

AH Division in

Ref document number: 4447707

Country of ref document: DE

Ref document number: 4447706

Country of ref document: DE

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PACT XPP TECHNOLOGIES AG, 80939 MUENCHEN, DE

8327 Change in the person/name/address of the patent owner

Owner name: RICHTER, THOMAS, 04703 BOCKELWITZ, DE

Owner name: KRASS, MAREN, ZUERICH, CH

R082 Change of representative

Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE

Representative=s name: VOSSIUS & PARTNER, DE

R071 Expiry of right
R071 Expiry of right