DE4416881A1 - Datenverarbeitungseinrichtung - Google Patents

Datenverarbeitungseinrichtung

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
English (en)
Other versions
DE4416881C2 (de
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/de
Priority to DE4447706A priority patent/DE4447706B4/de
Priority to DE4447707A priority patent/DE4447707B4/de
Publication of DE4416881A1 publication Critical patent/DE4416881A1/de
Application granted granted Critical
Publication of DE4416881C2 publication Critical patent/DE4416881C2/de
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

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)

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).
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.
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.
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.
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.
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 her­ kömmlichen Rechnern, wobei der Aufbau einfacher und billiger werden soll.
  • - Einsatz in neuronalen Netzen.
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).
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.
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.
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.
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.
Ü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.
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.
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:
  • 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).
  • 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.
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).
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.
Weiterbildungen der vorstehend definierten und umschriebe­ nen Erfindung sind Gegenstand der Unteransprüche.
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.
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.
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.
Die vorliegende Erfindung wird im folgenden anhand der weiteren Figuren näher erläutert. Insgesamt zeigen
Fig. 1 ein Schaltsymbol für einen 8-Bit-Addierer;
Fig. 2 ein Schaltsymbol für einen aus acht 1-Bit- Addierern bestehenden 8-Bit-Addierer nach Fig. 1;
Fig. 3 eine logische Struktur eines 1-Bit-Addierers ent­ sprechend Fig. 2;
Fig. 4 eine Zellenstruktur des 1-Bit-Addierers ent­ sprechend Fig. 3;
Fig. 5 einen der Zellenstruktur nach Fig. 1 entsprechend aufgebauten 8-Bit-Addierer;
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. 7 einen Teilausschnitt eines integrierten Schalt­ kreises (Chip) mit einer Vielzahl von Zellen und einem separierten SUBMACRO X gemäß Fig. 6;
Fig. 8 einen integrierten Schaltkreis (Chip) mit einer Orthogonalstruktur einer quasi beliebigen Viel­ zahl von Zellen und einer extern zugeordneten Ladelogik;
Fig. 9 ein erstes Ausführungsbeispiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach Fig. 8;
Fig. 10 ein zweites Ausführungsbeispiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach Fig. 8;
Fig. 11 ein Ausführungsbeispiel eines MACRO zur Addition zweier Zahlenreihen;
Fig. 12 einen beispielhaften Aufbau einer Zelle mit Multiplexern zur Auswahl der jeweiligen logischen Bausteine;
Fig. 13 eine zum Beispiel mit einem Standard-TTL-Baustein 74148 ausgeführte Synchronisationslogik;
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);
Fig. 15 die durch die Kaskadierung erreichte Homogenität;
Fig. 16a die Struktur der E/A-Zellen, wobei die globalen Verbindungen nicht herausgeführt werden,
Fig. 16b die Struktur der E/A-Zellen, jedoch mit herausge­ führten globalen Verbindungen;
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. 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. 18a eine Multiplikationsschaltung (vergleiche Fig. 11a);
Fig. 18b die interne Struktur des DFPs nach dem Laden (vergleiche Fig. 11b);
Fig. 19c die Arbeitsweise des DFPs im Speicher, sowie die Zustände der Zähler 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. 20 den stark schematisierten Aufbau eines herkömm­ lichen Rechners;
Fig. 21 den möglichen Aufbau desselben Rechners mit Hilfe eines Arrays aus kaskadierten DFPs;
Fig. 22 einen Ausschnitt mit eingezeichneten (Leitungs-) Treibern eines DFPs.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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:
  • - 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;
  • - im Zyklus (T + 1) werden die Summanden A, B ausgelesen und addiert;
  • - im Zyklus (T + 2) wird die Summe C abgespeichert.
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.
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
n: 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.
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
Das heißt - wie bereits erwähnt - die Schleife und die Addition benötigen gerade einmal T + 2 Taktzyklen.
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. 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.
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:
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.
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.
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.
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).
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:
Es existieren die Zahlenreihen An und Bn, wobei An durch das Ergebnis von Cn des vorher ausgeführten Programms gege­ ben ist:
n: 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;
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.
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;
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;
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.
Der Vollständigkeit halber sei angemerkt, daß die Register­ zelle 55 mit einem Reset-Eingang R und einem Takteingang gekoppelt ist.
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.
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.

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.
2. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik mit Speichermitteln gekoppelt ist, über die die Konfiguration der Zellen spezifizierbar ist.
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.
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.
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.
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.
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.
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.
DE4416881A 1993-05-13 1994-05-13 Verfahren zum Betrieb einer Datenverarbeitungseinrichtung Expired - Lifetime DE4416881C2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE4416881A DE4416881C2 (de) 1993-05-13 1994-05-13 Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE4447706A DE4447706B4 (de) 1993-05-13 1994-05-13 Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
DE4447707A DE4447707B4 (de) 1993-05-13 1994-05-13 Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4316036 1993-05-13
DE4416881A DE4416881C2 (de) 1993-05-13 1994-05-13 Verfahren zum Betrieb einer Datenverarbeitungseinrichtung

Publications (2)

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

Family

ID=6488009

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4416881A Expired - Lifetime DE4416881C2 (de) 1993-05-13 1994-05-13 Verfahren zum Betrieb einer Datenverarbeitungseinrichtung

Country Status (1)

Country Link
DE (1) DE4416881C2 (de)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035997A1 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
WO1998035294A2 (de) * 1997-02-11 1998-08-13 Pact Informationstechnologie Gmbh Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
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 (de) * 1999-03-31 2001-03-14 Koninklijke Philips Electronics N.V. Datenverarbeitung mit verschiedenen datenprozessoren
WO2002071196A2 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
WO2003025781A2 (de) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
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 (de) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analoge rekonfigurierbare Datenverarbeitungseinrichtung
US6859869B1 (en) 1995-11-17 2005-02-22 Pact Xpp Technologies Ag Data processing system
DE19722365B4 (de) * 1996-05-28 2005-07-28 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Rekonfigurierbares Rechenbauelement
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
EP1845623A2 (de) 2000-10-06 2007-10-17 PACT XPP Technologies AG Verfahren und Vorrichtung
US7669035B2 (en) * 2004-01-21 2010-02-23 The Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
EP2224330A1 (de) 2001-06-20 2010-09-01 Krass, Maren Verfahren zur Bearbeitung von Daten
EP2226732A2 (de) 2000-06-13 2010-09-08 Krass, Maren Cachehierarchie für einen Multicore-Prozessor
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 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
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 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
DE19843640A1 (de) * 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
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
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
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
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法

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 (de) * 1991-04-09 1993-05-05 Fujitsu Limited Datenprozessor und datenverarbeitungsverfahren

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 (de) * 1991-04-09 1993-05-05 Fujitsu Limited Datenprozessor und datenverarbeitungsverfahren

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 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
DE19722365B4 (de) * 1996-05-28 2005-07-28 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Rekonfigurierbares Rechenbauelement
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
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 (de) 1996-12-09 2010-03-24 PACT XPP Technologies AG Datenverarbeitungschip mit einer Vielzahl rekonfigurierbarer Zelleinheiten welche einen Energiesparmodus aufweisen
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
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
EP0948842B1 (de) * 1996-12-27 2003-06-18 Pact Informationstechnologie GmbH VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
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)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
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
US6081903A (en) * 1997-02-08 2000-06-27 Pact Gmbh Method of the self-synchronization of configurable elements of a programmable unit
WO1998035294A3 (de) * 1997-02-11 1998-10-22 Pact Inf Tech Gmbh Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
EP1398706A2 (de) * 1997-02-11 2004-03-17 PACT XPP Technologies AG Internes Bussystem für programmierbare Zellstrukturen
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 (de) * 1997-02-11 2006-04-12 PACT XPP Technologies AG Internes Bussystem für programmierbare Zellstrukturen
WO1998035294A2 (de) * 1997-02-11 1998-08-13 Pact Informationstechnologie Gmbh Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
EP2293193A1 (de) 1998-02-25 2011-03-09 Richter, Thomas Verfahren und Vorrichtung zur Datenverarbeitung
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 (de) * 1999-03-31 2001-03-14 Koninklijke Philips Electronics N.V. Datenverarbeitung mit verschiedenen datenprozessoren
US9690747B2 (en) 1999-06-10 2017-06-27 PACT XPP Technologies, AG Configurable logic integrated circuit having a multidimensional structure of configurable elements
EP2226732A2 (de) 2000-06-13 2010-09-08 Krass, Maren Cachehierarchie für einen Multicore-Prozessor
EP1845623A2 (de) 2000-10-06 2007-10-17 PACT XPP Technologies AG Verfahren und Vorrichtung
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 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
EP2224330A1 (de) 2001-06-20 2010-09-01 Krass, Maren Verfahren zur Bearbeitung von Daten
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
WO2003025781A2 (de) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
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 (de) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analoge rekonfigurierbare Datenverarbeitungseinrichtung
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 (de) 1998-03-19

Similar Documents

Publication Publication Date Title
DE4416881A1 (de) Datenverarbeitungseinrichtung
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE2716369C2 (de)
DE69125201T2 (de) Konfigurierbares logisches Feld
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE3854474T2 (de) Vorrichtung und verfahren zur übertragung von nachrichtenpaketen.
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
DE69637399T2 (de) Grobkörnig strukturierte integrierte Halbleiterschaltung mit Nachschlagtabellen
DE69904241T2 (de) Konfigurierbarer logischer block in einem nutzerprogrammierbaren gatterfeld mit einer vielzwecklogig/speicherschaltung
DE4205524C2 (de) Speicherprogrammierbare Steuerung
DE2755273C2 (de)
DE19704044A1 (de) Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
DE19704728A1 (de) Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE102005005073A1 (de) Rekonfigurierbare Architektur zur parallelen Berechnung beliebiger Algorithmen
DE3587446T2 (de) Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor.
EP1466264B1 (de) Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE10347975B4 (de) Einrichtung der programmierbaren Logik

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