DE4447706B4 - Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip - Google Patents
Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip Download PDFInfo
- Publication number
- DE4447706B4 DE4447706B4 DE4447706A DE4447706A DE4447706B4 DE 4447706 B4 DE4447706 B4 DE 4447706B4 DE 4447706 A DE4447706 A DE 4447706A DE 4447706 A DE4447706 A DE 4447706A DE 4447706 B4 DE4447706 B4 DE 4447706B4
- Authority
- DE
- Germany
- Prior art keywords
- cells
- logic
- data flow
- macros
- integrated circuit
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
Description
Die vorliegende Erfindung bezieht sich auf einen partiell zur Laufzeit rekonfigurierbaren Datenflussprozessor, d. h. eine Hardwareeinheit zur logischen Manipulation (Verknüpfung) von in binärer Form vorliegenden Daten (Informationen).The The present invention relates to a part at runtime reconfigurable data flow processor, d. H. a hardware unit for logical manipulation (linking) 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 Arbeitsstruktur der bekannten Datenverarbeitungseinrichtungen ist in etwa so zu definieren, daß eine arithmetisch-logische Verknüpfungseinheit vorgesehen ist, in der die zu verknüpfenden Daten einer programmtechnischen Anweisung (Software) zufolge verarbeitet werden. Die Daten werden dabei über ein Steuerwerk in mehr oder weniger komplexen Adressierungsvorgängen entsprechend abgerufen und zunächst in Arbeitsregistern bereitgestellt; nach der logischen Verknüpfung werden dann die neuen Daten in einer vorgegebenen Speicherstelle wieder abgelegt. Die arithmetisch-logische Verknüpfungseinheit besteht dabei aus logischen Verknüpfungsbausteinen (Gatter, Glieder), die jeweils so miteinander gekoppelt sind, daß die zu manipulierenden Daten der zugrunde liegenden Software entsprechend den vier Grundrechenarten gemäß logisch verarbeitet werden.such Data processing equipment has long been known and they have already found wide application and recognition. The basic structure and working structure of the known data processing equipment is to be defined in such a way that an arithmetic-logical Linking unit provided is in which the to be linked Data processed according to a software instruction (software) become. The data is about a control unit in more or less complex addressing operations accordingly retrieved and first provided in working registers; after the logical link will be then the new data in a given location again stored. The arithmetic-logical linking unit consists of this from logic operation blocks (Gates, links), which are each coupled to each other so that the manipulating data of the underlying software accordingly according to the four basic operations according to logical are processed.
Es ist leicht nachzuvollziehen, daß auf der Basis der bekannten Strukturen relativ viel Rechenzeit dafür erforderlich ist, die zu manipulierenden Daten auszulesen, und die Arbeitsregister zu überführen, den spezifischen Logikbausteinen in der arithmetisch-logischen Verknüpfungseinheit zuzuleiten und schließlich wieder abzuspeichern. Es ist ferner einsichtig, daß die Hardware-Struktur der arithmetisch-logischen Verknüpfungseinheit insoweit nicht als optimal betrachtet werden kann, als schließlich die hardwaremäß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 Bausteine sind des weiteren nur schlecht kaskadierbar und erfordern dann sehr viel Programmierarbeit.It is easy to understand that on The base of the known structures relatively much computing time required for it is to read the data to be manipulated, and the working registers to convict the specific logic blocks in the arithmetic logic logic unit to feed and finally save again. It is further understood that the hardware structure the arithmetic-logical linking unit so far as can not be considered optimal, as finally the available in hardware integrated logical building blocks always in one and the same Way to be actively used in the overall system. Likewise will Strict hardware specification, a stringing together of functions in so-called pipelines very difficult or limited what inevitably a common one Register reloading between working registers and arithmetic means. Furthermore, such components are only poorly cascadable and then require a lot of programming work.
Ein zusätzlicher Vorteil der vorliegenden Erfindung liegt darin, daß eine über einen weiten Raum skalierbare Parallelität zur Verfügung steht. Hierbei wird eine Basis zum schnellen und flexiblen Aufbau von neuronalen Strukturen geschaffen, wie sie bis dato lediglich mit erheblichem Aufwand simuliert werden können.One additional Advantage of the present invention is that one over a wide space scalable parallelism is available. Here is a Basis for fast and flexible construction of neural structures created, as it simulates so far only with considerable effort can be.
Der Aufsatz „A self-contained dynamically reconfigurable processor architecture" von Michael Saleeba, Department of Computer Science, Monash University, veröffentlicht vor Februar 1993 untersucht bereits die Vorteile, Bereiche von Logikfeldern „on the fly" zu rekonfigurieren, um die Nutzbarkeit der verfügbaren Logik zu maximieren. Saleeba schlägt unter anderem vor, einen Teil eines FPGAs zu rekonfigurieren, indem ein Programm nach seiner Ausführung auf dem Logikarray die Kontrolle an das Betriebssystem zurückgibt. Saleeba stellt fest, dass es am besten sei, in einer solchen Situation ein Reset-Signal anzulegen. Saleeba beschreibt unter anderem, dass nach der Rekonfiguration gegebenenfalls Teile eines Arrays in ihgren Originalzustand zurückgebracht werden müssen, falls dies notwendig sei, was zeitaufwendig sei und die Rekonfigurationen beschränkt.Of the Essay "A self-contained dynamically reconfigurable processor architecture "by Michael Saleeba, Department of Computer Science, Monash University, published Before February 1993, the benefits of exploring areas of logic fields on the fly "to reconfigure, to the usability of the available To maximize logic. Saleeba suggests, among other things, a Reconfigure part of an FPGA by running a program after its execution on the logic array returns control to the operating system. Saleeba notes that it is best in such a situation to create a reset signal. Saleeba describes, among other things, that after reconfiguration, if necessary, parts of an array in ihgren Original condition returned Need to become, if necessary, which is time consuming and the reconfigurations limited.
In dem Aufsatz „The Function Processor: A Data-Driven Processor Array for Irregular Computations" von J. Vasell und J. Vasell, gleichfalls vor dem Anmeldetag der vorliegenden Erfindung veröffentlicht, wird eine Zellarchitektur mit untereinander über nächste Nachbarverbindungen verbundene Zellen vorgeschlagen. Über die Verbindungen können entweder Daten fließen oder Konfigurtionsbefehle für die Zellen. Die der vorliegenden Erfindung zugrunde liegende Aufgabe besteht darin, eine Datenverarbeitungseinrichtung mit programmierer und konfigurierbarer Zellstruktur bereitzustellen, die eine bessere Verarbeitung gewährleistet.In the essay "The Function Processor: A Data-Driven Processor Array for Irregular Computations "of J. Vasell and J. Vasell, also before the filing date of the present Invention published, a cell architecture is interconnected with each other via nearest neighbor links Cells proposed. About the Connections can either data flow or configuration commands for the cells. The object underlying the present invention is a data processing device with a programmer and configurable cell structure that provide better Processing guaranteed.
Außer dem Einsatz als reiner Datenflußprozessor, soll der DFP folgende weitere Aufgaben erfüllen können:
- – Einsatz als universeller Baustein zum Aufbau von herkömmlichen Rechnern, wobei der Aufbau einfacher und billiger werden soll.
- – Einsatz in neuronalen Netzen.
- - Use as a universal building block for the construction of conventional computers, whereby the structure should be simpler and cheaper.
- - Use in neural networks.
Diese
Aufgabe wird durch die im Patentanspruch 1 angegebenen Merkmale
beziehungsweise Schritte gelöst,
wobei letztlich ein integrierter Schaltkreis (Chip) mit einer Vielzahl
insbesondere orthogonal zueinander angeordneter Zellen mit je einer
Mehrzahl jeweils logisch gleicher und strukturell identisch angeordneter
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 Spezialisierung von Vorteil sein. Den Zellen
ist eine Ladelogik zugeordnet, über die
die Zellen je für
sich und gegebenenfalls 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 beschaltet
um die jeweilige Zellfunktion zu gewährleisten (siehe
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 arithmetisch-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 Arbeitszyklusses als Addierer und während eines späteren Arbeitszyklusses als Multiplizierer "programmiert" werden, wobei die Anzahl der für die Addition beziehungsweise die Multiplikation erforderlichen Zellen durchaus unterschiedlich sein können. Dabei bleibt die Plazierung der bereits geladenen MACROs erhalten; der Ladelogik 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 entsprechenden MACROs in den Baustein lädt, wobei der Ladevorgang von der später beschriebenen Synchronisationslogik mitgesteuert wird, indem sie den Zeitpunkt des Umladens festlegt. Daher entspricht der DFP nicht der bekannten von-Neumann-Architektur, da die Daten- und Programmspeicher getrennt sind. Dies bedeutet jedoch gleichzeitig eine höhere Sicherheit, da fehlerhafte Programme keinen CODE, sondern lediglich DATEN zerstören können.With other than in claim 1 used words, the core The present invention is to propose a data flow processor, the is cellular and its cells via an external charging logic in the arithmetic-logical sense virtually reconfigured arbitrarily can be. It is of the utmost Need that the relevant lines individually and without affecting the other lines or even a decommissioning of the entire block are reconfigured can. The data flow processor according to the present Invention can be so during a first cycle as an adder and during a later work cycle be "programmed" as a multiplier, the Number of for the addition or multiplication required cells can be quite different. This preserves the placement of the already loaded MACROs; the charge logic or the compiler, it is up to the new loading MACRO within the free cells (i.e. to disassemble the MACRO to be loaded so that it can be optimally inserted). The Sequence control of the program is taken over by the charging logic, by following the current executed Program section loads the corresponding MACROs into the block, where the charging of the later described synchronization logic is controlled by determines the time of reloading. Therefore, the DFP does not match the well-known von Neumann architecture, because the data and program memories are separated. this means but at the same time a higher one Security, because bad programs do not CODE, but only Destroy data can.
Um den Datenflußprozessor eine arbeitsfähige Struktur zu geben, werden einige Zellen, und zwar unter anderem die Eingabe-/Ausgabefunktionen (I/O) und Speichermanagementfunktionen 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 Hardwareumgebung anzupassen. Die übrigen Zellen werden zu sogenannten MACROs zusammengefaßt und können während der Laufzeit nahezu beliebig und ohne Beeinflussung der Nachbarzellen umkonfiguriert werden. Dazu sind die Zellen einzeln und direkt adressierbar.Around the data flow processor a workable one To give structure to some cells, among others the input / output (I / O) functions and memory management functions loaded before loading the programs and usually remain during the total duration constant. This is required around the data flow processor adapt to its hardware environment. The remaining cells become so-called MACROs summarized and can while the runtime almost arbitrary and without affecting the neighboring cells be reconfigured. For this, the cells are 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 Synchronisationsschaltung als MACRO auf dem Datenflußprozessor untergebracht 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 Verfügung stellen müssen.Around the restructuring (reloading) of the cells or MACROs with the Synchronize charging logic, where necessary, because only transhipped may be when the MACROs are done with their old activity - a synchronization circuit as MACRO on the data flow processor be housed, the corresponding signals to the charging logic dispatches. This may possibly be a modification of the usual MACROs of need be, since these then the synchronization circuit state information to disposal have to ask.
Diese
Zustandsinformationen signalisieren der Synchronisationslogik 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 derartige – einfache – Logik
ist in
Ü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 Datenflußprozessors umgesetzt werden können und nicht – wie bisher – einen Austausch mit entsprechendem Anfall von Elektronikschrott bedingen.About the Loading logic can be the data flow processor each optimal and possibly dynamic to a problem to be solved be set. This is the big advantage, for example connected to that new standards or the like solely by reprogramming the Datenflußprozessors can be implemented and not - like so far - one Exchange with appropriate accumulation of electronic waste condition.
Die Datenflußprozessoren sind untereinander kaskadierbar, was zu einer beinahe beliebigen Erhöhung des Parallelisierungsgrades, der Rechenleistung, sowie der Netzgröße in neuronalen Netzen führt. Besonders wichtig ist hier eine klare homogene Verbindung der Zellen mit den Ein-/Ausgangs-Pins (IO-Pin) der Datenflußprozessoren, um möglichst keine Einschränkungen auf die Programme zu haben.The Datenflußprozessoren are cascadable with each other, resulting in almost any increase the degree of parallelization, the computing power, as well as the network size in neural Networks leads. Particularly important here is a clear homogeneous connection of the cells with the input / output pins (IO pin) of the data flow processors, if possible no restrictions to have on the programs.
In
- a) Nur
die lokalen Verbindungen zwischen den Zellen werden herausgeführt, was
im vorliegenden Beispiel zwei TO-Pins
pro Kantenzelle und vier IO-Pins pro Eckzelle bedeutet. Allerdings
hat der Compiler/Programmierer zu beachten, daß die globalen Verbindungen
nicht herausgeführt
werden, wodurch die Kaskadierung nicht vollständig homogen ist. (Globale
Verbindungen zwischen mehreren Zellen, für gewöhnlich zwischen einer kom pletten
Zellenreihe oder -spalte – siehe
6 –; lokale Verbindungen existieren nur zwischen zwei Zellen).16a zeigt den Aufbau innerhalb eines DFPs,17a zeigt die daraus resultierende Kaskadierung von mehreren DFPs (drei gezeichnet). - b) Die lokalen und globalen Verbindungen werden herausgefü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.
- a) Only the local connections between the cells are led out, which in the present example means two TO pins per edge cell and four IO pins per corner cell. However, the compiler / programmer has to keep in mind that the global connections are not routed out, so that the cascading is not completely homogeneous. (Global connections between multiple cells, usually between a complete cell row or column - see
6 -; local links exist only between two cells).16a shows the structure within a DFP,17a shows the resulting cascading of multiple DFPs (three drawn). - b) The local and global connections are led out, which drastically increases the number of required driver / IO pins and lines, in our example to six IO pins per edge cell and twelve IO pins per corner cell. As a result, a complete homogeneity in the cascading is given.
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 Verbindung 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 Aufgabe, die bei langen Strecken und entsprechend hohen
Lasten, unbedingt erforderlich ist; zum anderen kann der Treiber
in Tristate gehen und damit das Signal unterbrechen. Dadurch können die
Abschnitte links und rechts, beziehungsweise oberhalb und unterhalb
des Treibers von verschiedenen 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 anliegen, während die
globale Nachbarverbindung tatsächlich
global von ein und demselben Signal verwendet wird (vergleiche
Zur besseren Kommunikation zwischen den Datenflußprozessoren und der Ladelogik können sogenannte Shared-Memories eingesetzt werden. So können zum Beispiel Programme von einer Festplatte, die im IO-Bereich eines Datenfluß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 abholt. Dies ist besonders wichtig, da hier, wie bereits erwä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 Speicherbetriab der Datenflußprozessoren liegen – verknüpft werden sollen.to better communication between the data flow processors and the charging logic can so-called shared memories be used. So can For example, programs from a hard drive that is in the IO range of a Datenflußprozessors is passed to the charging logic by the data flow processors write the data from the disk to the shared memory and the Ladelogik picks you up there. This is especially important because here, As already mentioned, no von Neumann but a Harvard architecture exists. As well are the shared memories of advantage, if constants in the program - the im Memory area of the charging logic is - defined, with data - in the Memory operation of the data flow processors lie - linked should.
Weiterbildungen der vorstehend definierten und umschriebenen Erfindung sind Gegenstand der Unteransprüche.further developments the above defined and circumscribed invention are the subject of the dependent claims.
Eine besondere Verwendung des erfindungsgemäßen Datenfluß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 (komplexen) 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 zugefügt zu werden. Bei einer Normänderung oder Verbesserung muß dann wie bereits angedeutet nur das MACRC softwareseitig gewechselt werden; ein Eingriff in die Hardware ist nicht notwendig. Es bietet sich hier an, einen IO-(Eingabe-/Ausgabe-) Stecker festzulegen, über welchen dann die Zusatzbausteine angeschlossen werden können.A particular use of the data flow processor according to the invention is to be seen in that it can form the basis for a complete (complex) computer in conjunction with suitable input / output units on the one hand and a memory on the other hand. A large part of the IO functions can be implemented as MACROs on the data flow processor and at the moment only special modules (Ethernet driver, VRAMS ...) need to be added externally. In the case of a standard change or improvement, as already indicated, only the MACRC must be changed on the software side; an intervention in the Hard ware is not necessary. It makes sense here to specify an IO (input / output) connector, via which the additional modules can then be connected.
Ein weiteres Einsatzgebiet des Bausteins ist der Aufbau großer neuronaler Netze. Sein besonderer Vorzug liegt hierbei in seiner hohen Gatterdichte, seiner ausgezeichneten Kaskadierbarkeit, sowie seiner Homogenität. Ein Lernvorgang, der eine Änderung einzelner axiomatischer Verbindungen 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öglicht erstmalig die optimale Simulation von Lernvorgängen.One Another application of the device is the construction of large neural Networks. Its special advantage lies in its high gate density, its excellent cascadability, as well as its homogeneity. A learning process, the one change single axiomatic connections or individual cell functions includes is on usual Building blocks as poorly feasible as the construction of large homogeneous and at the same time flexible cell structures. The dynamic reconfigurability allows 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 zeigenThe The present invention will be described below with reference to the further figures explained in more detail. Overall show
In
Das
in
In
Die
Erfindung setzt da ein, wo es – wie
in
Der
Vollständigkeit
halber ist in
In
der Darstellung nach
Das
in
In
Ein
vollständiger
integrierter Schaltkreis (Chip)
Anhand
von
Gemäß dem in
Die
Ladelogik
Die
in
Ein
weiteres Ausführungsbeispiel
einer Rechnerstruktur ist in
In
Verbindung mit
Bezugnehmend
auf die Darstellung nach
Es
ist ein weiterer Zähler
Die
Additionsschaltung
Der
Zeitablauf in der Zeitsteuerung
- – Im Zyklus
1 wird jeweils der Zähler47 um 1 erhöht und im Komparator48 wird geprüft, ob n > 9 erreicht ist; syn chron zu diesen Operationen werden die Adressen für A, B, C berechnet; - – im Zyklus (T + 1) werden die Summanden A, B ausgelesen und addiert;
- – im Zyklus (T + 2) wird die Summe C abgespeichert.
- - In the cycle
1 is the counter47 increased by 1 and in the comparator48 it is checked whether n> 9 is reached; synchronously with these operations, the addresses for A, B, C are calculated; - - In the cycle (T + 1) the summands A, B are read out and added;
- - 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 erforderlich, so daß verglichen mit den herkömmlichen Prozessoren (CPU), die im allgemeinen 50 bis mehrere 100 Taktzyklen bedingen, eine ganz wesentliche Rechenzeit-Reduzierung möglich wird.With other words means this, that the Operation loop and the actual addition of even (T + 2) clock cycles requires. In general, for T 2 ... 3 cycles required, so that compared with the conventional Processors (CPU), which are generally 50 to several 100 clock cycles conditional, a very significant computing time reduction is possible.
Die
anhand von
Es
existieren die Zahlenreihen An und Bn
∀ n: 0 <= n <=
9
Es sollen die Summen Ci = Ai + Bi mit I ∈ N gebildet werden.The basis of
There are the number series An and Bn
∀ n: 0 <= n <= 9
The sums Ci = Ai + Bi with I ∈ N are to be formed.
Das
Timing der Statemachine sieht demnach folgendermaßen aus:
Zyklus
Aktivität
- 1
- Zähler erhöhen, Vergleich auf > 9 (ja => Abbruch) und Adressen für A, B, C, berechnen
- T + 1
- A, B, holen und addieren
- T + 2
- Nach C speichern
Cycle activity
- 1
- Increase counter, compare to> 9 (yes => abort) and calculate addresses for A, B, C
- T + 1
- A, B, bring and add
- T + 2
- Save to C
Das heißt – wie bereits erwähnt – die Schleife und die Addition benötigen gerade einmal T + 2 Taktzyklen.The means - as already mentioned - the loop and need the addition just once T + 2 clock cycles.
Nach
Beendigung des beschriebenen Programms soll ein neues Programm geladen
werden, das die Ergebnisse weiterverwertet. Die Umladung soll zur
Laufzeit erfolgen. Das Programm ist im Folgenden gegeben:
Es
existieren die Zahlenreihen An und Bn, wobei An durch das Ergebnis
Cn des vorher ausgeführten
Programms gegeben ist:
n: 0 <=
n <= 9
Es
sollen die Produkte Ci = Ai*Bi mit I ∈ N gebildet werden.After completion of the program described, a new program is to be loaded, which reuses the results. The transhipment should take place at runtime. The program is given below:
There are the number series An and Bn, where An is given by the result Cn of the previously executed program:
n: 0 <= n <= 9
The products Ci = Ai * Bi with I ∈ N are to be formed.
Die Beschreibung der einzelnen Befehle ist bereits bekannt, * symbolisiert die Multiplikation.The Description of each command is already known * symbolizes the multiplication.
Die
MACRO-Struktur ist in
Besonders
zu beachten ist der Zähler
Bei
näherer
Betrachtung des Problems stellt sich die Frage, warum nicht beide
Operationen, die Addition und die Multiplikation in einem Zyklus
durchgeführt
werden, also die Operation:
Es existieren die Zahlenreihen
An und Bn, wobei An durch das Ergebnis von Cn des vorher ausgeführten Programms
gegeben ist:
n: 0 <=
n <= 9
Es
sollen die Produkte Ci = (Ai + Bi)*Bi mit I ∈ N gebildet werden. path D definiert einen internen
nicht aus den DFP herausgeführten
Doppelpfad. Die Operation benötigt
wegen einem zusätzlichen
1 einen Taktzyklus mehr aus vorher, ist insgesamt 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.A closer look at the problem raises the question of why not both operations, addition and multiplication are performed in one cycle, ie the operation:
The number series An and Bn exist, where An is given by the result of Cn of the previously executed program:
n: 0 <= n <= 9
The products Ci = (Ai + Bi) * Bi with I ∈ N are to be formed. path D defines an internal double path not taken from the DFP. The operation requires one more clock cycle from before because of an extra one, but overall it is faster than the two programs above in sequence because, on the one hand, the loop is passed only once, the second is not reloaded.
Prinzipiell könnte das Programm auch so formuliert werden: In principle, the program could also be formulated as follows:
Sind die Gatterlaufzeiten des Addierers und des Mulitplizierers zusammen kleiner als ein Taktzyklus, kann die Operation (A + B)*B auch in einem Taktzyklus durchgeführt werden, was zu einer weiteren erheblichen Geschwindigkeitssteigerung führt: If the gate times of the adder and the multiplier together are less than one clock cycle, the operation (A + B) * B can also be performed in one clock cycle, resulting in a further significant speed increase:
Anhand
von
Der
Vollständigkeit
halber sei angemerkt, daß die
Registerzelle
Dem
im vorstehenden erläuterten
Zellenaufbau, d.h. der Zelle
Sollen
zum Beispiel die Signale A2 mit B5 verundet werden, so werden die
Multiplexer
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DEP4316036.0 | 1993-05-13 | ||
DE4316036 | 1993-05-13 | ||
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 |
DE4416881A DE4416881C2 (en) | 1993-05-13 | 1994-05-13 | Method for operating a data processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4447706B4 true DE4447706B4 (en) | 2006-11-23 |
Family
ID=37311359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4447706A Expired - Lifetime 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 |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4447706B4 (en) |
Citations (2)
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 |
-
1994
- 1994-05-13 DE DE4447706A patent/DE4447706B4/en not_active Expired - Lifetime
Patent Citations (2)
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 |
Non-Patent Citations (5)
Title |
---|
Future Generation Computer Systems, Vol. 8, No. 4, pp. 321-335, Sept. 1992 |
SALEEBA, M.: A self-contained dynamically reconfi-gurable processor architecture, Australian Computer Science Communications: Proceedings of the sixteenth Australian computer science conference (ACSC-16) Brisbane, 15:1, 59-70, 1993 * |
SALEEBA, M.; A self-contained dynamically reconfi- gurable processor architecture, Australian Com- puter Science Communications: Proceedings of the sixteenth Australian computer science conference (ACSC-16) Brisbane, 15:1, 59-70, 1993 |
VASELL, J. et al.: The Function Processor: A Data- Driven Processor Array for Irregular Computations |
VASELL, J. et al.: The Function Processor: A Data-Driven Processor Array for Irregular Computations Future Generation Computer Systems, Vol. 8, No. 4,pp. 321-335, Sept. 1992 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4416881C2 (en) | Method for operating a data processing device | |
DE69827589T2 (en) | Configurable processing assembly and method of using this assembly to build a central processing unit | |
DE69534812T2 (en) | Programmable logic device storing more than one configuration and means for switching the configuration | |
DE69822796T2 (en) | USER PROGRAMMABLE PROCESSOR | |
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) | |
DE2755273C2 (en) | ||
DE3854474T2 (en) | DEVICE AND METHOD FOR TRANSMITTING MESSAGE PACKAGES. | |
DE68914172T2 (en) | Data processing system and video processing system with such a data processing system. | |
WO1998029952A1 (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) | |
DE102004045527B4 (en) | Configurable logic circuitry | |
WO2004021176A2 (en) | Method and device for processing data | |
EP1466264B1 (en) | Method for configuration of the connection between data processing cells | |
DE19704044A1 (en) | Address generation with systems having programmable modules | |
WO2004038599A1 (en) | Reconfigurable sequencer structure | |
EP1146432A2 (en) | Reconfiguration method for programmable components during runtime | |
DE3314917A1 (en) | MULTIMICROPROCESSOR SYSTEM | |
EP1164474A2 (en) | Method to hierarchically cache configuration data of data flow processors | |
DE102005005073B4 (en) | Computer device with reconfigurable architecture for the parallel calculation of arbitrary algorithms | |
DE4447707B4 (en) | Data flow processor - uses charging logic for individual and group-wise programming of mutually orthogonal homogeneously structured cells in integrated circuit chip | |
DE4447706B4 (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 | |
DE19756591B4 (en) | Device for hierarchically connecting a plurality of functional units in a processor | |
EP1789889B1 (en) | Computer with a reconfigurable architecture for integrating a global cellular automaton | |
DE10243322B4 (en) | Analog reconfigurable data processing device | |
EP1348257B1 (en) | Device with segmented cell structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: PACT XPP TECHNOLOGIES AG, 80939 MUENCHEN, DE |
|
AC | Divided out of |
Ref document number: 4416881 Country of ref document: DE Kind code of ref document: P |
|
8364 | No opposition during term of opposition | ||
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 |