DE4447707B4 - Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik - Google Patents

Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik Download PDF

Info

Publication number
DE4447707B4
DE4447707B4 DE4447707A DE4447707A DE4447707B4 DE 4447707 B4 DE4447707 B4 DE 4447707B4 DE 4447707 A DE4447707 A DE 4447707A DE 4447707 A DE4447707 A DE 4447707A DE 4447707 B4 DE4447707 B4 DE 4447707B4
Authority
DE
Germany
Prior art keywords
cells
logic
data flow
macros
flow processor
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
Application number
DE4447707A
Other languages
English (en)
Inventor
Martin Vorbach
Robert MÜNCH
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
PACT XPP Technologies AG
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 PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Priority to DE4447707A priority Critical patent/DE4447707B4/de
Priority claimed from DE4416881A external-priority patent/DE4416881C2/de
Application granted granted Critical
Publication of DE4447707B4 publication Critical patent/DE4447707B4/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)

Abstract

Videointerface, aufweisend einen als Datenflussprozessor arbeitenden integrierten Schaltkreis mit einer Mehrzahl partiell rekonfigurierbarer Zellen mit einer zur Laufzeit rekonfigurierbaren Schaltlogik zur Ausführung eines Programms, wobei
a) die Zellen zur Rekonfiguration einzeln und direkt adressierbar sind,
b) bei der Rekonfiguration zur Laufzeit die zu rekonfigurierenden Zellen gestoppt werden, während die anderen ihren gesamten Zustand behalten und weiterarbeiten,
c) den Zellen eine Ladelogik zugeordnet ist, über die die Zellen einzeln oder in Zellgruppen und auch die logischen Verknüpfungen der Zellen untereinander mittels zeilenweiser und spaltenweiser Busstrukturen als MACROs rekonfiguriert werden können,
d) die Ladelogik die Ablaufsteuerung des Programms übernimmt und gemäß einem momentan auszuführenden Programmabschnitt entsprechende MACROs in zu rekonfigurierende Zellen lädt,
e) die MACROs so konfigurierbar sind, dass sie Zustandsinformationen zur Verfügung stellen, die der Ladelo gik signalisieren, dass einzelne MACROs ihre Aufgabe erledigt haben und umgeladen werden können,
f) die Ladelogik einen Prozessor mit mikrocodiertem...

Description

  • Die vorliegende Erfindung bezieht sich auf ein Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik d.h. einer 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 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 zugrundeliegenden Software entsprechend den vier Grundrechenarten gemäß logisch verarbeitet werden.
  • 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 Gesamtsystem ak tiv 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.
  • 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.
  • 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 ihren Originalzustand zurückgebracht werden müssen, falls dies notwendig sei, was zeitaufwendig sei und die Rekonfigurationen beschränkt.
  • 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 Konfigurationsbefehle 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.
  • Die der vorliegenden Erfindung zugrunde liegende Aufgabe besteht darin, ein Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit programmierbarer und konfigurierbarer Zell-Struktur bereitzustellen, die eine höhere Parallelität der Verarbeitung gewährleistet.
  • 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 und Transistoren in der Zelle beschaltet um die jeweilige Zellfunktion zu gewährleisten (siehe 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 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.
  • Um dem 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 Hard wareumgebung 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.
  • 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.
  • 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 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 Signal mit der höchsten Priorität an die Ladelogik weiter; liegen zum Beispiel Sync0, Sync4 und Sync6 an, so reicht die Synchronisations-Schaltung zunächst Sync6 an die Ladelogik weiter. Nachdem die entsprechenden MACROs umgeladen sind und somit Sync6 nicht mehr anliegt wird Sync4 weitergeleitet 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 Datenfluß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 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.
  • In 14 ist zum Beispiel die Kaskadierung von vier DFPs gezeigt. Sie erscheinen der Umgebung wie ein großer homogener Baustein (15). Prinzipiell sind damit zwei Kaskadierungsmethoden 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 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 kompletten 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.
  • 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 22).
  • 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 Speicherbetrieb der Datenflußprozessoren liegen – verknüpft werden sollen.
  • Weiterbildungen der vorstehend definierten und umschriebenen Erfindung sind Gegenstand der Unteransprüche.
  • Eine besondere Verwendung des erfindugsgemäß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 MACRO 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.
  • 20 zeigt den stark vereinfachten Aufbau eines heute üblichen Rechners. Durch den Einsatz eines DFP-Bausteins können erhebliche Teile eingespart werden (21), wobei die entsprechenden herkömmlichen Baugruppen (CPU, Speicherverwaltung, 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 zugeschaltet 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 verschiedene 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 hochkomplexes 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 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.
  • Die vorliegende Erfindung wird im folgenden anhand der weiteren Figuren näher erläutert. Insgesamt zeigen
  • 1 ein Schaltsymbol für einen 8-Bit-Addierer;
  • 2 ein Schaltsymbol für einen aus acht 1-Bit-Addierern bestehenden 8-Bit-Addierer nach 1;
  • 3 eine logische Struktur eines 1-Bit-Addierers entsprechend 2;
  • 4 eine Zellenstruktur des 1-Bit-Addierers entsprechend 3;
  • 5 einen der Zellenstruktur nach 1 entsprechend aufgebauten 8-Bit-Addierer;
  • 6 ein aus vier Zellen bestehendes unprogrammiertes SUBMACRO X (analog einem 1-Bit-Addierer gemäß 4 beziehungsweise 5) mit den erforderlichen Leitungsanschlüssen;
  • 7 einen Teilausschnitt eines integrierten Schaltkreises (Chip) mit einer Vielzahl von Zellen und einem separierten SUBMACRO X gemäß 6;
  • 8 einen integrierten Schaltkreis (Chip) mit einer Orthogonalstruktur einer quasi beliebigen Vielzahl von Zellen und einer extern zugeordneten Ladelogik;
  • 9 ein erstes Ausführungsbeipiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach 8;
  • 10 ein zweites Ausführungsbeispiel einer Mehrzahl miteinander zu einem Rechenwerk gekoppelter integrierter Schaltkreise (Datenflußprozessor) nach 8;
  • 11 ein Ausführungsbeispiel eines MACRO zur Addition zweier Zahlenreihen;
  • 12 einen beispielhaften Aufbau einer Zelle mit Multiplexern zur Auswahl der jeweiligen logischen Bausteine;
  • 13 eine zum Beispiel mit einem Standard-TTL-Baustein 74148 ausgeführte Synchronisationslogik;
  • 14 die Kaskadierung von vier DFPs, wobei die Verbindung zwischen den IO-Pins nur schematisch dargestellt sind (tatsächlich bedeutet eine gezeichnete Verbindung eine Mehrzahl von Leitungen);
  • 15 die durch die Kaskadierung erreichte Homogenität;
  • 16a die Struktur der E/A-Zellen, wobei die globalen Verbindungen nicht herausgeführt werden;
  • 16b die Struktur der E/A-Zellen, jedoch mit herausgeführten globalen Verbindungen;
  • 17a die aus 16a resultierende Kaskadierung, wobei eine Eckzelle, sowie die zwei mit ihr kommunizierenden Treiberzellen der kaskadierten Bausteine (vergleiche hierzu 14) gezeichnet sind;
  • 17b die aus 16b resultierende Kaskadierung, wobei eine Eckzelle, sowie die zwei mit ihr kommunizierenden Treiberzellen der kaskadierten Bausteine (vergleiche hierzu 14) gezeichnet sind;
  • 18a eine Multiplikationsschaltung (vergleiche 11a);
  • 18b die interne Struktur des DFPs nach dem Laden (vergleiche 11b);
  • 19c die Arbeitsweise des DFPs im Speicher, sowie die Zustände der Zähler 47, 49;
  • 19 eine Kaskadenschaltung, wobei der Addierer aus 11 und der Multiplizierer aus 18 zur Steigerung der Rechenleistung hintereinander geschaltet sind;
  • 20 den stark schematisierten Aufbau eines herkömmlichen Rechners;
  • 21 den möglichen Aufbau desselben Rechners mit Hilfe eines Arrays aus kaskadierten DFPs;
  • 22 einen Ausschnitt mit eingezeichneten (Leitungs-) Treibern eines DFPs.
  • In 1 ist ein Schaltsymbol eines 8-Bit-Addierers dargestellt. Das Schaltsymbol besteht aus einem quadratischen Baustein 1 mit acht Eingängen A 0...7 für ein erstes Datenwort 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 1 dargestellte Schaltsymbol ist in 2 als Anordnung sogenannter SUBMACROS dargestellt. Diese SUB-MACROS 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 3 ist die binäre Logik eines 1-Bit-Addierers beziehungsweise eines SUBMACROS 2 nach 2 dargestellt. Analog zu 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 vorgesehen. Diese Bits werden den dargestellten Verbindungen beziehungsweise 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üpfungsergebnisse (Si, Üaus) anstehen.
  • Die Erfindung setzt da ein, wo es – wie in 4 dargestellt – darum geht, das in 3 gezeigte SUBMACRO 2 oder eine oder mehrere beliebige Funktion(en) in geeigneter Weise in einer Zellstruktur zu implementieren. Dies geschieht auf der Grundlage logisch und strukturell identischer Zellen 10, deren einzelne logische Bausteine der auszuführen den Verknüpfungsfunktion entsprechend miteinander gekoppelt werden, und zwar mittels der noch zu beschreibenden Ladelogik. Gemäß der in 4 gezeigten, von der Schaltlogik nach 3 abgeleiteten Verknüpfungslogik 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 bezü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 entsprechend programmierte (konfigurierte) Zellen 10.1 ... 10.4 verifiziert. (Der Vollständigkeit halber soll angemerkt werden, daß die einzelnen Zellen ein erheblich umfangreicheres 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 andererseits vorgesehen, so daß über eine entsprechende Programmierung seitens der Ladelogik quasi beliebige logische Verknüpfungsstrukturen implementiert werden können).
  • Der Vollständigkeit halber ist in 5 der Zellenaufbau eines 8-Bit-Addierers in seiner Gesamtheit dargestellt. Die in 5 gezeigte Struktur entspricht insoweit der nach 2, wobei die in 2 symbolisch als SUBMACROS 2 dargestellten 1-Bit-Addierer jeweils durch eine vierzellige Einheit 10.1 ... 10.4 ersetzt sind. Bezogen auf den erfindungsgemäßen Datenflußprozessor bedeutet dies, daß zweiunddreißig Zellen der zur Verfügung stehenden Gesamtheit von Zellen einer zellular mit logisch identischem Layout gefer tigten Schaltungsplatine seitens der Ladelogik so angesteuert und konfiguriert beziehungsweise programmiert werden, daß diese zweiunddreißig Zellen ein 8-Bit-Addierer bilden.
  • In der Darstellung nach 5 ist über eine strichpunktierte Umrahmung ein SUBMACRO "X" zeichnerisch separiert, das letztlich als aus vier einem 1-Bit-Addierer entsprechend programmierten Zellen (10 gemäß 4) bestehende Untereinheit zu betrachten ist.
  • Das in 5 separierte SUBMACRO "X" ist in 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) aufweisen. Die Datenanschlüsse verbinden jeweils benachbarte Zellen, so daß ersichtlich wird, wie beispielsweise eine Dateneinheit von Zelle zu Zelle durchgeschleust wird. Die Ansteuerung der Zellen 10 erfolgt einerseits über sogenannte lokale Steuerungen, das sind lokale Leitungen, die mit allen Zellen verbunden sind, und andererseits über sogenannte globale Leitungen, d. h. Leitungen, die über den gesamten integrierten Schaltkreis (Chip) 20 geführt sind.
  • In 7 ist ein vergrößerter Ausschnitt eines integrierten Schaltkreises 20 dargestellt, der mit einem orthogonalen Raster von Zellen 10 belegt ist. Wie in 7 angedeutet kann so zum Beispiel eine Gruppe von vier Zellen 10 als SUBMACRO "X" ausgewählt und dem 1-Bit-Addierer entsprechend 4 gemäß programmiert beziehungsweise konfiguriert werden.
  • Ein vollständiger integrierter Schaltkreis (Chip) 20 ist in 8 dargestellt. Dieser integrierte Schaltkreis 20 besteht aus einer Vielzahl im orthogonalen Raster angeordneter Zellen 10 und weist an seinen Außenkanten eine ent sprechende Anzahl von Leitungsanschlüssen (Pins) auf, über die Signale, insbesondere Ansteuersignale und Daten zugeführt und weitergeleitet werden können. In 8 ist wiederum das SUBMACRO "X" gemäß 5/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 beziehungsweise ü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. Bezugnehmend auf die 1 bis 5 ist in 8 einerseits das SUBMACRO "X" entsprechend 4 und 5 hervorgehoben; andererseits ist auch ein MACRO "Y" entsprechend 1 und 2 angezeichnet, das als Einheit einem 8-Bit-Addierer entspricht.
  • Anhand von 9 beziehungsweise 10 soll im folgenden eine Rechnerstruktur beschrieben werden, die auf den im vorstehenden definierten und erläuterten integrierten Schaltkreis 20 aufbaut.
  • Gemäß dem in 9 dargestellten ersten Ausführungsbeispiel ist – analog zur Anordnung der Zellen – im Orthogonalraster 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 Schaltkreisen 20 bestehende – Rechnerstruktur weist Ein-/Ausgangsleitungen IO auf, über die der Rechner quasi mit der Außenwelt in Verbindung steht, d.h. korrespondiert. Der Rechner gemäß 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 Rechnerstruktur ist die Ladelogik 30 zu- beziehungsweise übergeordnet, mittels der die integrierten Schaltkreise (Datenflußprozessor) 20 programmiert und konfiguriert und vernetzt werden.
  • Die Ladelogik 30 baut auf einem Transputer 31, d.h. einem Prozessor mit mikrocodiertem Befehlssatz auf, dem seinerseits 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 Rechnerspeicher 22, d.h. den Shared-Memory-Speicher.
  • Die in 9 dargestellte Struktur stellt so einen kompletten 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 vernetzt, d.h. miteinander gekoppelt werden können.
  • Ein weiteres Ausführungsbeispiel einer Rechnerstruktur ist in 10 dargestellt. Im Unterschied zu 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 verbunden, und zwar wie dargestellt jeweils mit Gruppen dieser integrierten Schaltkreise. Die in 10 dargestellte Rechnerstruktur weist die gleiche Ladelogik 30 auf, wie sie anhand von 9 erläutert wurde.
  • In Verbindung mit 11a soll eine auf erfindungsgemäßen Datenflußprozessoren aufgebaute Additionsschaltung erläutert 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 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 Verdeutlichung der Umkonfigurierbarkeit einzelner MACROs ohne Beeinflussung der an der Umkonfigurierung nicht beteiligten MACROs dienen.
  • 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 1 dargestellten 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 Adressdaten für die abzuspeichernden Additionsergebnisse ergänzt. Die Adreßschaltung 46 besteht ihrerseits aus drei MACROs 1 (gemäß 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 abgebrochen wird. Ist die Addition vollendet, so wird in der Zeitsteuerung 45 ein STOP-Signal generiert und die Schaltung passiv geschaltet. Ebenso kann das STOP-Signal als Eingangssignal für eine Synchronisations-Schaltung verwenden 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; synchron 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 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.
  • Die anhand von 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.
    Figure 00190001
    • for i = 0 to n with (A[i], B[i], C[i]) Δ1;
    • C = Δ1 = A + B;
    next;
    RAM 1 ist der 1. Speicherblock
    RAM 2 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.
  • 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 11a erläuterten entsprechenden Nummern versehen.
  • 11c zeigt den groben Aufbau der einzelnen Funktionen auf die RAM-Blöcke 1 und 2: Die Summanden werden nacheinander 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 besrchriebenen 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.
    Figure 00210001
    • 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 18a beschrieben, 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 11b. In 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. (Hiermit 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 gegeben ist: ∀ n: 0 < = n < = 9
  • Es sollen die Produkte Ci=(Ai + Bi)*Bi mit I ∈ N gebildet werden.
    Figure 00220001
    • 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 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.
  • Prinzipiell könnte das Programm auch so formuliert werden:
    Figure 00220002
    • 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 Multiplizierers 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:
    Figure 00230001
    • for i = 0 to n with (A[i], B[i], C[i]) Δ1;
    • C = Δ1 = (A + B)*B;
    next;
  • Anhand von 12 soll ein einfaches Beispiel eines Zellenaufbaus erläutert werden. Die Zelle 10 umfaßt zum Beispiel ein UND-Glied 51, ein ODER-Glied 52, ein XOR-Glied 53, einen Inverter 54 sowie eine Registerzelle 55. Die Zelle 10 weist darüberhinaus eingangsseitig zwei Multiplexer 56, 57 mit (den sechzehn Eingängen der Zelle entsprechend 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 Registerzelle 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" beziehungsweise "FÜNF" entsprechend aktiv geschaltet; die Summanden gelangen dann zum UND-Glied 51 und werden bei entsprechender Aktvierung der Multiplexer 58, 59 am Ausgang OUT abgegeben. Soll zum Beispiel eine NAND-Verknüpfung durchgeführt werden, so schaltet der Multiplexer 58 zum Inverter 54 und am Ausgang OUT steht dann das negierte UND-Ergebnis an.

Claims (1)

  1. Videointerface, aufweisend einen als Datenflussprozessor arbeitenden integrierten Schaltkreis mit einer Mehrzahl partiell rekonfigurierbarer Zellen mit einer zur Laufzeit rekonfigurierbaren Schaltlogik zur Ausführung eines Programms, wobei a) die Zellen zur Rekonfiguration einzeln und direkt adressierbar sind, b) bei der Rekonfiguration zur Laufzeit die zu rekonfigurierenden Zellen gestoppt werden, während die anderen ihren gesamten Zustand behalten und weiterarbeiten, c) den Zellen eine Ladelogik zugeordnet ist, über die die Zellen einzeln oder in Zellgruppen und auch die logischen Verknüpfungen der Zellen untereinander mittels zeilenweiser und spaltenweiser Busstrukturen als MACROs rekonfiguriert werden können, d) die Ladelogik die Ablaufsteuerung des Programms übernimmt und gemäß einem momentan auszuführenden Programmabschnitt entsprechende MACROs in zu rekonfigurierende Zellen lädt, e) die MACROs so konfigurierbar sind, dass sie Zustandsinformationen zur Verfügung stellen, die der Ladelo gik signalisieren, dass einzelne MACROs ihre Aufgabe erledigt haben und umgeladen werden können, f) die Ladelogik einen Prozessor mit mikrocodiertem Befehlssatz umfasst und mit dem Datenflussprozessor über eine Schnittstelle zum Übertragen der Daten, die den Datenflussprozessor aufgabenspezifisch programmieren, verbunden ist.
DE4447707A 1993-05-13 1994-05-13 Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik Expired - Lifetime DE4447707B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4447707A DE4447707B4 (de) 1993-05-13 1994-05-13 Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DEP4316036.0 1993-05-13
DE4316036 1993-05-13
DE4416881A DE4416881C2 (de) 1993-05-13 1994-05-13 Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE4447707A DE4447707B4 (de) 1993-05-13 1994-05-13 Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik

Publications (1)

Publication Number Publication Date
DE4447707B4 true DE4447707B4 (de) 2006-12-07

Family

ID=37402238

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4447707A Expired - Lifetime DE4447707B4 (de) 1993-05-13 1994-05-13 Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik

Country Status (1)

Country Link
DE (1) DE4447707B4 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4578771A (en) * 1980-12-29 1986-03-25 International Business Machines Corporation Dynamically reprogrammable array logic system
US4791603A (en) * 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4578771A (en) * 1980-12-29 1986-03-25 International Business Machines Corporation Dynamically reprogrammable array logic system
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4791603A (en) * 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
WO1990011648A1 (en) * 1989-03-17 1990-10-04 Algotronix Limited Configurable cellular array

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Saleeba, M.: A self-contained dynamically recon- figurable processor architecture. Australian Computer Science Communications: Proceedings of the sixteenth Australian computer science confer- ence (ACSC-16) Brisbane, 15:1, 59-70, 1993 *

Similar Documents

Publication Publication Date Title
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
EP0948842B1 (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
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
DE2716369C2 (de)
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE19704044A1 (de) Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
WO2004038599A1 (de) Rekonfigurierbare sequenzerstruktur
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
DE102005005073B4 (de) Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
EP1466264B1 (de) Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE10347975B4 (de) Einrichtung der programmierbaren Logik
EP1038235B1 (de) Vorrichtung zum hierarchischen verbinden einer mehrzahl von funktionseinheiten in einem prozessor
DE602004005806T2 (de) Serieller Speicher mit Mitteln zur Integration eines erweiterten Speicherfeldes
DE69227744T2 (de) Teilmultiplikatorselektor für Multiplikationsschaltung
DE10243322B4 (de) Analoge rekonfigurierbare Datenverarbeitungseinrichtung
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur
DE4308178C2 (de) Homogene Rechnerstruktur

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