DE3542436A1 - Datenflussprozessorsystem - Google Patents

Datenflussprozessorsystem

Info

Publication number
DE3542436A1
DE3542436A1 DE19853542436 DE3542436A DE3542436A1 DE 3542436 A1 DE3542436 A1 DE 3542436A1 DE 19853542436 DE19853542436 DE 19853542436 DE 3542436 A DE3542436 A DE 3542436A DE 3542436 A1 DE3542436 A1 DE 3542436A1
Authority
DE
Germany
Prior art keywords
data
bus
processor
mark
function
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.)
Withdrawn
Application number
DE19853542436
Other languages
English (en)
Inventor
John Wayne van Ramona Calif. Zandt
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.)
Conic Corp
Original Assignee
Conic Corp
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 Conic Corp filed Critical Conic Corp
Publication of DE3542436A1 publication Critical patent/DE3542436A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Description

VON KREISLER SCHÖNWALD EISHOLD FUES VON KREISLER KELLER SELTING WERNER
PATENTANWÄLTE
Dr.-Ing. von Kreisler ti 973
Dr.-Ing. K. W. Eishold 11981
CONIC CORPORATION Dr.-Ing. K. Schönwald
(LORAL INSTRUMENTATION) „'}'L· FueS*, , „ ,
R 401 Aero Drive Dipl.-Chem. Alek von Kreisler
8 4Ul Aero Drive DipL-Chem. Carola Keller
San Diego DiPl.-lng. G. Seifing
California 92123 Dr. H.-K. Werner
U.S.A.
DEICHMANNHAUS AM HAUPTBAHNHOF
D-5000 KÖLN 1
Sg-Hi/Fe
29. November 1985
Datenflußprozessorsystem
Die Erfindung betrifft ein Datenflußprozessorsystem nach dem Oberbegriff des Anspruchs 1.
Ein derartiges Datenflußprozessorsystem wird in einem Computer verwendet. Anders als bei einem herkömmlichen Computer, bei dem eine Befehlsausführung von der Programmfluß-Steuerung gesteuert erfolgt, wird das Datenflußprozessorsystem aufgrund der Verfügbarkeit der Operandendaten gesteuert.
Bei einem herkömmlichen Computer wird der Datenfluß durch die sequentielle Ausführung eines Programmes gesteuert. Wie anhand eines Flußdiagrammes klar wird, stellt das Programm eine sequentielle Kette von Schritten dar, die einer nach dem anderen ausgeführt werden. Wenn in einem Programm mehrere Berechnungen durchzuführen sind, erfolgen diese Berechnungen nacheinander.
Telefon: (022!) 13 1041 · Telex: 8882307 dopa d · Telegtuinin: Dompotent Köln
Wenn in einem Programm beispielsweise zwei Operationen auszuführen sind, wobei die erste Operation eine Funktion ist, die die Eingabedaten A, B und C benötigt und die Ausgabedaten D erzeugt, und die zweite Operation eine Funktion ist, die die Eingabedaten B und C erfordert und Ausgabedaten E erzeugt, dann werden diese beiden Operationen nacheinander ausgeführt. Normalerweise sind alle Daten in einem gemeinsamen Speicher gespeichert. Der Computer greift erstens in der Reihenfolge Daten A, dann Daten B, dann Daten C auf den Speicher zu, führt zweitens zur Erstellung der Funktion die notwendigen arithmetischen und logischen Operationen aus und erzeugt drittens die Ausgabedaten D, die dann in den Speicher eingegeben werden. Nachfolgend wird für die Daten B und C, die zur Ausführung der arithmetischen oder logischen Operationen der nächsten Funktion benötigt werden, wieder auf den Speicher zugegriffen. Die sich ergebenden Ausgabedaten E werden ihrerseits in den Speicher eingegeben.
Bei einem derartigen vom Programmfluß gesteuerten Computer wird die Verarbeitungsgeschwindigkeit durch diejenige Geschwindigkeit, mit der die Befehle seriell ausgeführt werden können, und durch die sequentielle Datenzugriffszeit auf den gemeinsamen Speicher begrenzt. Die Begrenzung aufgrund der Datenzugriffszeit hängt zusammen mit dem "von Neumann Engpaß". Dieser Ausdruck bezeichnet die Tatsache, daß alle Daten unabhängig von der Verarbeitungsgeschwindigkeit des Prozessors in eine einzige Datei hintereinander eingeschrieben werden müssen, bevor sie verarbeitet werden können.
Bei dem gerade beschriebenen Beispiel des herkömmlichen seriellen und programmflußgesteuerten Computers kann die zweite Funktion bis nach Beendigung der ersten Funktion nicht ausgeführt werden, selbst wenn die Daten (B und C), die als Eingabedaten für die zweite Funktion benötigt werden, bereits zu Beginn der Berechnung der ersten Funktion im Speicher verfügbar waren.
Zur Erhöhung der Rechengeschwindigkeit ist es bekannt, mehrere parallel arbeitende Prozessoren zu verwenden. In bezug auf das gerade beschriebene Beispiel könnte ein Computer mit parallel arbeitenden Prozessoren derart programmiert werden, daß die erste Funktion durch einen ersten Prozessor ausgeführt wird, während die zweite Funktion durch einen separaten parallelen zweiten Prozessor ausgeführt wird. Jedoch auch bei einer derartigen Organisation müssen die Prozessoren um den Zugriff auf den allgemeinen Datenspeicher "konkurrieren" , womit wiederum der "von Neumann Engpaß" zum Tragen kommt. Der erste Prozessor muß sequentiell auf die Daten A, B und C zugreifen, während der zweite Prozessor getrennt und sequentiell auf die Daten B und C zugreifen muß. Diese serielle Anreihung von Daten erzeugt somit auch bei einem programmflußgesteuerten Computer mit parallelen Prozessoren eine inhärente Geschwindigkeitbsbegrenzung. Im Gegensatz dazu weist das Datenflußprozessorsystem, das aus mindestens einem Datenflußprozessor besteht, eine grundsätzlich andere Organisation auf. Bei dem Datenflußprozessor werden die Daten parallel verarbeitet, der "von Neumann Engpaß" aber wird durch direkte Verteilung der Daten auf die verschiedenen parallelen Verarbeitungseinheit eliminiert. In jeder dieser Einheiten wird die Operation ausgeführt, sobald die Daten zur Ausführung der gefor-
derten Funktion verfügbar sind. Dadurch wird eine merkliche Verbesserung der Verarbeitungsgeschwindigkeit erzielt.
im oben beschriebenen Beispiel werden die verschiedenen Daten A, B und C direkt und gleichzeitig auf die verschiedenen Verarbeitungseinheiten verteilt. Die Verarbeitungseinheit für die erste Funktion nimmt die Daten A, B und C auf und führt sofort die Berechnung dieser Funktion aus und liefert den Ausgabewert D. Daneben werden die Daten B und C, wenn sie der ersten Verarbeitungseinheit zugeführt werden, auch an die separate zweite Verarbeitungseinheit für die zweite Funktion gegeben. Diese Einheit nimmt die Daten B und C auf und berechnet unmittelbar die zweite Funktion, wobei der Ausgabewert E erzeugt wird.
In dem Datenflußprozessor werden somit die funktionellen Operationen nicht in einer sequentiellen programmflußgesteuerten Art und Weise, sondern aufgrund der Verfügbarkeit der Operandendaten ausgeführt.
Der Erfindung liegt die Aufgabe zugrunde, ein Datenflußprozessorsystera zu schaffen, das eine verbesserte Datenverarbeitung und Datenorganisation aufweist, so daß die Verarbeitungsgeschwindigkeit größer wird.
Diese Aufgabe wird erfindungsgemäß mit dem Datenflußprozessorsystem gelöst, das die Merkmale des kennzeichnenden Teils des Anspruchs 1 aufweist.
Bei dem erfindungsgemäßen Datenflußprozessorsystem werden die Operandendaten in Form von "Marken" in dem System übertragen, wobei jede Marke ein Identifi-
zierungsfeld mit einem Identifikationssymbol und ein Datenfeld mit einem Operandendaten-Wert aufweist.
Die Marken werden auf einem Bus, nachfolgend mit "Flußbus" bezeichnet, übertragen, an den mehrere Markenprozessoren oder "Datenflußkarten" angeschlossen sind. Jeder diese Markenprozessoren beinhaltet eine oder mehrere Verarbeitungseinheiten, die zur Ausführung einer bestimmten spezifische, Eingabedaten erfordernden Funktion entsprechend konfiguriert oder steuerbar sind.
Jede Datenflußkarte weist darüber hinaus einen Eingangsmarkenprozessor (EMP) auf, der die Identifikation oder das Identifizierungsfeld jeder Marke auf dem Flußbus überwacht. Der EMP sucht nach Marken, die solche Operandendaten beinhalten, die für die Verarbeitungseinheiten auf derselben Datenflußkarte benötigt werden. Wenn der EMP anhand der Identifikation des Identifizierungsfeldes der Marke auf dem Flußbus erkennt, daß die gerade vorhandene Marke für eine dieser Verarbeitungseinheit benötigt wird, gibt der EMP die Operandendaten dieser Marke in einen auf der Datenflußkarte selbst angeordneten Speicher.
Wenn alle erforderlichen Operandendaten, die für eine bestimmte Verarbeitungseinheit benötigt werden, empfangen worden sind und in den EMP-Speicher eingegeben worden sind, führt die Verarbeitungseinheit die Funktion aus.
Wenn zum Beispiel die Verarbeitungseinheit eine Funktion ausführt, für die die Eingabedaten A, B und C erforderlich sind, sucht der EMP auf dem Flußbus nach Daten, die im Identifizierungsfeld die Identifikations-
symbole "A", "B" und "C" aufweisen. Werden diese Marken erkannt, so werden die zugehörigen Operandenwerte von dem EMP gespeichert. Sobald Operandenwerte aller drei Eingabedaten "A", "B" und "C" empfangen sind, kann die Verarbeitungseinheit sofort ihre Funktion ausführen.
Jeder Markenprozessor oder jede Datenflußkarte weist darüber hinaus einen Ausgangsmarkenprozessor (AMP) auf. Wenn die Verarbeitungseinheit Ausgabedaten erzeugt, stellt der AMP diese zu einer neuen Ausgabemarke zusammen. Wenn z.B. die Verarbeitungseinheit eine Funktion ausführt, deren Ausgabedaten mit "D" bezeichnet werden, erzeugt der AMP eine neue Ausgabemarke, die eine "D" entsprechende Identifikation in dem Identifizierungsfeld aufweist, und überträgt den tatsächlichen von der Verarbeitungseinheit erzeugten Datenwert in das Datenfeld.
Zur Ausgabe auf den Flußbus reiht der AMP die neuerzeugten Ausgabemarken in eine Warteschlange ein. Mit dem Flußbus ist eine Zuweisungsschaltung verbunden, die jeden Markenprozessor abfragt, um zu ermitteln, welcher Markenprozessor über auszugebende Marken verfügt. In Abhängigkeit einer passenden "rotierenden" Prioritätsbasis gibt die Zuweisungsschaltung den Zugriff zum Flußbus immer nur für einen Markenprozessor frei. Derjenige Markenprozessor, für den der Zugriff auf den Flußbus freigegeben wird, gibt die nächste Marke in der Warteschlange an den Flußbus aus.
30
Die Erfindung schließt auch Konfigurationen mit mehreren Flußbussen ein. Die Verbindung der Flußbusse untereinander erfolgt durch Bus-zu-Bus-Markenprozessoren, die nur diejenigen Daten von einem auf den anderen
Flußbus übertragen, die der gerade Daten aufnehmende Bus benötigt.
Die Computer-Konfigurationssteuerung des erfindungsgemäßen Datenflußprozessorsystems erlaubt die beliebige Zuweisung von speziellen Funktionen zu jeder der Verarbeitungseinheiten auf den einzelnen Datenflußkarten. Zur Optimierung der Durchführung für eine bestimmte Anwendungen kann das System daher selektiv umorganisiert werden. Im Ergebnis besteht eine derartige Umorganisation aus dem "Programmieren" des Datenflußprozessors, um einen bestimmten Satz von untereinander abhangigen Funktionen zu implementieren.
Weitere bevorzugte Ausführungsformen der Erfindung sind den Ansprüchen 2 bis 11 zu entnehmen.
Nachfolgend werden unter Bezugnahme auf die Figuren Ausführungsbeispiele der Erfindung näher erläutert.
20
Es zeigen:
Fig. 1 ein Blockdiagramm des Datenflußprozessors,
Fig. 2 das Format einer Informationsmarke, wie sie in dem Datenflußprozessor nach Fig. 1 ver
wendet wird,
Fig. 3 eine schematische Darstellung einer Funktion, die von einer in dem Datenf lußprozessor nach Fig. 1 enthaltenden Verarbeitungsschaltung implementiert ist,
Fig. 4 eine schematische Darstellung bzw. einen "Datengraph" von mehreren untereinander abhängigen Funktionen, wie er durch das Datenflußprozessorsystem nach Fig. 1 implementiert werden kann,
Fig. 5 ein Blockdiagramm eines in dem System nach
Fig. 1 verwendeten Markenprozessors,
Fig. 6 ein Blockdiagramm eines anderen Ausführungsbeispiels des Datenflußprozessorsystems, bei dem zwei separate Marken-Trägerbusse ver
wendet werden und der die selektive Übertragung von zuvor ausgewählten Marken zwischen diesen Bussen ermöglicht,
Fig. 7 ein Blockdiagramm eines Ausführungsbeispiels des Datenflußprozessorsystems, bei dem mehre
re miteinander verbundene Marken-Trägerbusse verwendet werden,
Fig. 8 ein Blockdiagramm, das eine mögliche Anordnung für die Eingabe und/oder Ausgabe von Daten bei einem der Datenflußprozessoren dar
stellt, und
Fig. 9 ein Blockdiagramm eines Systems, das die computergesteuerte Umorganisation des Datenflußprozessorsystems ermöglicht.
20
Das in Fig. 1 dargestellte Datenflußprozessorsystem weist einen Datenflußprozessor 20 auf, der einen Bus 21 (auch mit "Flußbus" bezeichnet) beinhaltet, über den Informationsmarken übertragen werden. Das Markenformat 22 (Fig. 2) weist ein Identifizierungsfeld 22t und ein Datenfeld 22d auf. In dem Identifizierungsfeld 22t befindet sich ein Identifikationssymbol oder ein Identifier und im Datenfeld 22d befindet sich ein Operandendatenwert.
30
An dem Flußbus 21 sind mehrere Markenprozessoren 23 (manchmal auch mit "Datenflußkarte" bezeichnet und im einzelnen mit 23a, 23b usw. gekennzeichnet) angeschlossen. Jeder Markenprozessor 23 weist einen Funktions-
-Sf-
verarbeitungsteil 24 auf, der eine oder mehrere Verarbeitungseinheiten 25 beinhaltet. Diese Verarbeitungseinheiten 25 führen die arithmetische, mathematische, logische oder anderweitige Verarbeitung der im Markenformat vom Flußbus 21 empfangenen Daten aus.
Jede Verarbeitungseinheit 25 führt eine bestimmte Funktion (f) für bestimmte Eingabedaten aus. Diese Funktionseinheit 26 ist schematisch in Fig. 3 dargestellt, in der der Kreis oder der "Knoten" 26 eine bestimmte Funktion (f ) darstellen soll, die durch eine der Ver-
el
arbeitungseinheiten 25 auszuführen ist- Die Funktion
(f ) erfordert drei Dateneingaben, die durch die mit a
A(I), B(2) und C(3) markierten Pfeile oder "Bögen" dargestellt sind. Das Ergebnis der Ausführung der Funktion
(f ) ist die Erzeugung von Ausgabedaten, die durch den a
mit D(4) markierten Pfeil oder Bogen dargestellt sind.
Bei der Funktion (f ) kann es sich z.B. um die Be-
rechnung eines Temperaturgradienten g durch eine Wand mit der Stärke w handeln, wobei die Wand an ihrer Außenseite die Temperatur t und an ihrer Innenseite die Temperatur t. hat und für den Temperaturgradienten g gilt
1O-1X
g = __ (Gleichung 1) .
Um diese Operation auszuführen, benötigt die Funktionseinheit 26 drei Eingabedatenwerte. Auf das Beispiel der Funktionseinheit 26 der Fig. 3 bezogen, heißt das, daß der Funktionseinheit 26 die Temperatur t an der Außenseite der Wand über den Pfad A zugeführt wird. Zur
Identifizierung dieses Pfades ist die Zahl "1" vorgesehen. Somit können die Eingabedaten, die die Temperatur t an der Außenseite der Wand darstellen, durch Marken mit dem Format 22 nach Fig. 2 repräsentiert werden, bei denen das Identifizierungsfeld 22t den Wert "1" beinhalten. Der Wert "1" kennzeichnet demnach, daß die gelieferten Daten zu dem Pfad A gehören (und daher die Außentemperatur t darstellen). Dann enthält das Datenfeld 22d den tatsächlichen numerischen Wert für die Außentemperatur t .
Entsprechend kann die Temperatur t. an der Innenseite der Wand über den Pfad B mit dem Identizierungswert "2" geliefert werden, so daß das zugehörige Markenformat in seinem Identifizierungsfeld 22t den Wert "2" und in seinem Datenfeld 22d den entsprechenden Wert der Temperatur t. aufweist. Das gleiche gilt für den VJert w der Wandstärke, der über den Pfad C zugeführt wird und ein Identifikationssymbol "3" aufweist, so daß seine Marke in ihrem Identifizierungsfeld 22t den Wert "3" und in ihrem Datenfeld 22d den Viert w der Wandstärke aufweist.
Wenn die Funktion 26 gemäß der obigen Gleichung (1) ausgeführt ist, wird der sich ergebende Ausgabewert auf den Ausgabepfad D mit dem Identifikationssymbol "4" gegeben. Der berechnete Datenwert für den Gradienten g kann somit im Markenformat mit dem Wert "4" im Identifizierungsfeld (d.h. dem Ausgabepfad D zugehörig) geliefert werden und beinhaltet in seinem Datenfeld 22d den Wert des Gradienten g, der unter Verwendung der dem Knoten 26 zugeführten Eingabedaten berechnet worden ist.
überträgt man die Fig. 3 auf den Datenflußprozessor 20 nach Fig. 1, so ist eine der Verarbeitungseinheiten 25 zur Ausführung der obigen Gleichung (1) entsprechend konfiguriert. Somit kann z.B. die Verarbeitungseinheit 25a einen zur Ausführung dieser Gleichung entsprechend programmierten Mikroprozessor oder Hartware bzw. Firmware umfassen, der diese Aufgabe zugewiesen ist.
Zum Sammeln der für die Verarbeitungseinheiten 25 notwendigen Daten weist jede Datenflußkarte 23 einen Eingangsmarkenprozessor (EMP) 30 auf, der in seinen Einzelheiten später beschrieben wird. Der EMP 30 überwacht alle auf dem Flußbus 21 befindlichen Marken, um untersuchen zu können, ob irgendwelche in den Marken befindliehen Daten von einer der Verarbeitungseinheiten 25 auf dieser Datenflußkarte benötigt werden. Auf das gerade beschriebene Beispiel bezogen, bei dem die Verarbeitungseinheit 25a die Gleichung (1) ausführt, bedeutet dies, daß der EMP 30 nach solchen Marken sucht, in deren Identifizierungsfeldern sich die Werte "1", "2" und "3" befinden, da diese Marken die Datenwerte der Außentemperatur t , der Innentemperatur t. und der Wanddicke w beinhalten, die alle als Eingabedaten für die Verarbeitungseinheit 25a erforderlich sind. Wenn irgendeine dieser Marken auf dem Flußbus 21 vorhanden ist, übernimmt der EMP 30 diese Marke und speichert die in den Marken befindlichen Daten in einem dafür vorgesehenen Speicher.
Sobald die drei Datenwerte t , t. und w empfangen und im EMP 30 gespeichert sind, kann die Verarbeitungseinheit 25 unmittelbar mit der Ausführung der Funktion (f ) beginnen, d.h., die Verarbeitungseinheit 25 kann
ei
unmittelbar gemäß Gleichung (1) den Wert des Gradienten g berechnen.
Der resultierende Wert des von der Verarbeitungseinheit 25a berechneten Gradienten g steht zur Ausgabe an den Flußbus 21 in Markenformat zur Verfügung. Dazu weißt die Datenflußkarte 23 (Fig. 1) einen Ausgangsmarkenprozessor (AMP) 31 auf, der Marken zwecks Ausgabe an den Bus zusammensetzt. Sobald die Verarbeitungseinheit 25 den Wert des Gradienten g berechnet hat, erstellt der AMP 31 eine Marke, in dessen Identifizierungsfeld 22t sich der Wert "4" befindet, der dem Pfad D (4) für den Knoten oder die Funktion 26 (Fig. 3) entspricht. Der AMP 31 setzt in das Datenfeld 22d dieser Marke den neuen Wert des Gradienten g ein, der gerade von der Verarbeitungseinheit 25a berechnet worden ist. Der AMP 31 signalisiert dem Bus 21, daß sich in dem Markenprozessor 23a (in der Datenflußkarte 23a) eine neue Marke befindet, die an den Flußbus 21 ausgegeben werden kann. Wenn die Marke danach auf den Bus 21 ausgegeben worden ist, ist sie ab sofort für jede Verarbeitungseinheit, die den Wert des Gradienten g als Dateneingabe benötigt, verfügbar.
Der Fluß der Marken auf dem Bus 21 wird von einer Zuweisungseinheit 3 2 gesteuert, die eine Abruf- und Zuweisungsoperation ausführt. Der Flußbus 21 kann eine separate festgeschaltete Abrufsignalleitung und eine separate festgeschaltete Zuweisungssignalleitung von dem AMP 31 eines jeden Markenprozessors 23 zu der Zu- * Weisungseinheit 32 aufweisen.
Auf dem Flußbus 21 kann immer nur eine einzige Marke übertragen werden. Ein System kann z.B. eine 4 MHz-Rate
haben, so daß vier Millionen Marken pro Sekunde (4x10 /s) einzeln über den Flußbus 21 übertragen werden können. Jede Marke kann 32 Bits umfassen, die auf dem Flußbus 21 parallel übertragen werden, wobei eine Marke ein 16-Bit-Identifizierungsfeld 22t und ein 16-Bit-Datenfeld 22d aufweist.
Die Zuweisungseinheit 32 erkennt laufend über die Abrufsignalleitung, welcher Markenprozessor 23 gerade eine Marke hat, die an den Flußbus 21 übergeben werden kann. In jedem Zyklus sendet die Zuweisungseinheit 3 2 ein Zuweisungssignal nur zu einem der an dem Bus 21 angeschlossenen Markenprozessoren 23, wodurch dieser Prozessor eine Marke an den Flußbus 21 ausgeben kann.
Vorteilhafterweise weist die Zuweisungseinheit 32 ein "rotierendes" Prioritätsschema auf. Dies ist jedoch nicht unbedingt erforderlich. Zu Anfang tastet die Zuweisungseinheit 32 die Markenprozessoren 23 sequentiell ab. (Beispielsweise überprüft die Zuweisungseinheit 32, wenn 16 Markenprozessoren 23 mit dem Flußbus 21 verbunden sind, als erstes, ob der Prozessor #1 eine auszugebende Marke hat, und als nächstes die Prozessoren #2, #3, usw. bis #16). Sobald ein Markenprozessor, z.B. der Markenprozessor #5, ermittelt worden ist, der eine auszugebende Marke hat, wird an diesen Markenprozessor #5 ein Zuweisungssignal gesendet. Sobald die Marke vom Markenprozessor #5 auf den Flußbus 21 übergeben worden ist, wird der Markenprozessor #5 durch die Zuweisungseinheit 32 auf die niedrigste Priorität zurückgestuft. Danach wird nach jedem erzeugten Zuweisungssignal die Priorität des zugehörigen Markenprozessors ebenfalls auf den niedrigsten Wert gesetzt. Diese Art der Organisation garantiert, daß jede Datenflußkarte 23 in sech-
zehn Zyklen einmal auf den Flußbus 21 zugreift. Dieses Zuweisungsschema ist jedoch nur beispielhaft für den Datenflußprozessor 20, bei dem auch jedes andere passende Buszuweisungsschema verwendet werden kann.
5
Mit dem Datenf lußprozessor 20 nach Fig. 1 können komplexe Berechnungen asynchron ausgeführt werden, wobei die verschiedenen Funktionen in den einzelnen Verarbeitungseinheiten 25 separat ausgeführt werden. Jede dieser Einheiten führt die ihr zugewiesene Funktion aus, sobald die für diese Verarbeitungseinheit erforderlichen Eingabedaten durch den zugehörigen Eingangsmarkenprozessor angesammelt worden sind. Der "Datengraph" in Fig. 4 zeigt schematisch eine Art der komplexen Berechnung, die mit dem Datenflußprozessor 20 ausgeführt werden kann. Jeder der Knoten oder Funktionen f, bis f5 in Fig. 4 stellt einen mathematischen, arithmetischen, logischen oder anderweitigen Prozeß dar, der von jeweils einer Verarbeitungseinheit 25 ausgeführt wird. Beispielsweise kann der Knoten f~ der Funktion (f ) nach Fig. 3 entsprechen und von der Ver-
el
arbeitungseinheit 25a ausgeführt werden. Die Funktion f_ kann der ebenfalls auf der Datenflußkarte 23a befindlichen Verarbeitungseinheit 25b zugewiesen sein.
Die Funktionen f,, f. und f,- können jeweils den Verarbeitungseinheiten 25c, 25d und 25e in dem gleichen Markenprozessor 23a zugewiesen sein. Alternativ dazu können aber auch einige oder alle diese Funktionen f.., f. und f- den Verarbeitungseinheiten 25 in einem separaten Markenprozessor 23 zugewiesen sein.
Eine Eigenschaft des Datenflußprozessors besteht darin, daß die Zuweisung der verschiedenen Funktionen auf die einzelnen Verarbeitungseinheiten frei wählbar ist.
Jede Funktion kann zwecks ihrer Ausführung irgendeiner Verarbeitungseinheit zugewiesen sein. Darüber hinaus schließt der Datenflußprozessor auch den Fall mit ein, daß mehr auszuführende Funktionen als Verarbeitungseinhexten vorhanden sind. Dies wird durch Time-Sharing von einer oder mehrerer Verarbeitungseinheiten 25 erreicht, um damit in einer Verarbeitungseinheit 25 getrennt zwei oder mehr Funktionen auszuführen. Beispielsweise kann die Verarbeitungseinheit 25a in dem Markenprozessor 2 3 derart konfiguriert sein, daß sie die beiden Funktion f2 und f3 ausführen kann. Die Verarbeitungseinheit 25a kann z.B. durch einen Mikroprozessor mit zwei separaten gespeicherten Programmen realisiert werden, wobei das eine Programm zur Ausführung der Funktion f„ und das andere Programm zur Ausführung der Funktion f, dient.
Darüber hinaus braucht diejenige Zeit, während derer die Verarbeitungsschaltung 25a entweder die Funktion f oder die Funktion f_ ausführt, nicht fest zu sein. Diese Zeit kann in Abhängigkeit der Verfügbarkeit der zur Ausführung der speziellen Funktion erforderlichen Daten dynamisch festgelegt werden.
Zum Beispiel erfordert die Funktion f_ Datenwerte von den Pfaden A, B und C, denen Marken mit den Identifikationssymbolen "1", "2" und "3" entsprechen. Andererseits erfordert die Funktion f. Eingabedaten von den Pfaden G und H, wobei die Daten durch Marken mit den Identifierungen "7" und "8" charakterisiert sind. Der zugehörige Eingangsmarkenprozessor 30 sammelt all diese Marken, d.h. Marken mit den IdentifikationsSymbolen "1", "2", "3", "7" und "8". Der Eingangsmarkenprozessor 30 signalisiert der Verarbeitungseinheit 25a, wann die entsprechenden Daten für eine der Funktionen f„ und f.
zusammengestellt sind. Entsprechend der Verfügbarkeit der Daten kann die Verarbeitungseinheit 25a daraufhin das Erforderliche ausführen.
Der EMP 30 empfängt beispielsweise zuerst eine Marke mit dem Identifikationssymbol "1", dann eine Marke mit dem Identifikationssymbol "7" und daraufhin eine Marke mit dem Identifikationssymbol "8". Jetzt sind alle Daten zur Ausführung der Funktion f. verfügbar, wohingegen die für die Funktion f? notwendigen Daten noch nicht verfügbar sind. Der EMP 30 signalisiert der Verarbeitungseinheit 25a diese Situation. Der Prozessor dieser Verarbeitungseinheit 25a überprüft daraufhin, ob er die Funktion f. ausführen kann, führt diese Funktion sofort aus und erzeugt einen Ausgabewert, der (durch den Ausgangsmarkenprozessor 31) in eine Marke formatiert wird, die entsprechend dem Ausgabepfad 1(9) der Funktion f. das Identifikationssymbol "9" aufweist.
Anschließend empfängt der EMP 3 0 beispielsweise Marken mit den Identifikationssymbolen "2" und "3". In dem EMP 30 sind jetzt die Daten angesammelt, die zur Ausführung der Funktion f„ notwendig sind (Daten mit den Identifikationssymbolen "1", "2" und "3"). Daher überprüft die Verarbeitungseinheit 25a sich selbst und führt die Funktion f2 aus.
Natürlich können die Funktionen f„ und f. (und dies entspricht dem Normalfall) getrennten Verarbeitungseinheiten zugewiesen werden, d.h. jeweils den Einheiten 25a und 25c. In diesem Fall führt die Verarbeitungseinheit 25a die Funktion f„ aus, sobald der EMP 30 Marken mit den Identifikationssymbolen "1", "2" und "3" empfangen hat. Ebenso führt die Verarbeitungseinheit
25c die Funktion f^, aus, sobald der EMP 30 Marken mit den Identifikationssymbolen "7" und "8" empfangen hat. Wenn beispielsweise Marken mit den Identifikationssymbolen "2", "7", 11I", "3" und "8" in dieser Reihenfolge empfangen werden, beginnt die Verarbeitungseinheit 25a mit der Ausführung der Funktion f~ dann, wenn die Marke mit dem Identifikationssymbol "3" empfangen wird, da dann alle für die Funktion f- erforderlichen Eingabedaten verfügbar sind. Die Verarbeitungseinheit 25c beginnt mit der Funktion f., wenn die Marke mit dem Identifikationssymbol "8" empfangen wird.
Desweiteren können, wie später noch beschrieben wird, mehrere Werte für einen oder mehrere Pfade empfangen werden, bevor sich ein erforderlicher kompletter Datensatz zur Ausführung einer bestimmten Funktion angesammelt hat. Die Funktion wird dann ausgeführt, wenn der komplette Datensatz empfangen ist, wobei die für jeden Pfad zuerst empfangenen Daten verwendet werden.
Zur Verdeutlichung dieses Sachverhaltes sei beispielsweise angenommen, daß Marken mit den Identifikationssymbolen "2", "1", "1", "3" in dieser Reihenfolgen empfangen werden. Jetzt sind alle Eingabedaten für die Funktion f„ verfügbar, wobei jedoch zwei Datenwerte für den Pfad A(I) empfangen worden sind. Die Verarbeitungseinheit 25a führt die Funktion f„ aus, verarbeitet jedoch den ersten der beiden empfangenen Datenwerte für den Pfad A(I) (, d.h., die Verarbeitungseinheit 25a verarbeitet den Datenwert derjenigen der beiden Marken mit dem Identifikationssymbol "1", die als erstes empfangen worden ist) . Der Datenwert der später empfangenen Marke mit dem Identifikationssymbol "1" wird zur Verarbeitung in der Verarbeitungseinheit 25a solange
3542A3B
- 3-β- -
gehalten, bis auch die zweiten Datenwerte für die Pfade B(2) und C(3) empfangen worden sind.
Ein Eingangsmarkenprozessor 30 (Fig. 1) nimmt diejenigen Marken auf, die zur Ausführung aller Funktionen durch sämtliche Verarbeitungseinheiten 25a, 25b, 25c usw. in dem Verarbeitungsteil derselben Datenflußkarte erforderlich sind. Wenn somit die Verarbeitungseinheiten 25a, 25b und 25c jeweils die Funktionen f„, f,- und f. ausführen, sammelt der Markenprozessor 23 alle für diese Funktionen erforderlichen Marken.
Zu beachten ist der Fall, daß ein Eingabepfad 1(9) der Funktion f- einem Ausgang einer anderen Funktion f. entspricht, die auf derselben Datenflußkarte bearbeitet wird. Marken mit dem Identifikationssymbol "9" werden in diesem Fall aber auch vom Flußbus 21 durch den EMP 30 empfangen, wenn sie an den Bus 21 durch den AMP 31 auf derselben Datenflußkarte zuvor ausgegeben worden sind.
Der Aufbau des Eingangsmarkenprozessors 30 ist in Fig. 5 dargestellt. Der Eingangsmarkenprozessor 30 beinhaltet einen Identifikationssymbol-Speicher 33 zum Speiehern von benötigten Identifikationssymbolen, in dem diejenigen Identifikationszahlen (Identifikationssymbole) gespeichert sind, die den Identifikationssymbolen der von den Verarbeitungseinheiten 25 in dem Funktionsverarbeitungsteil 24 eines Markenprozessors 23 benötigt werden. Bei dem Beispiel, bei dem die Funktionen f2, f. und f von den Verarbeitungseinheiten in diesem Markenprozessor oder in dieser Datenflußkarte ausgeführt werden, sind die Marken für die Pfade A, B, C, F, G, H und I erforderlich. Also sind die entsprechenden Identifi-
kationssymbole "1", "2", "3", "6", "7", "8" und "9" im Identifikationssymbol-Speicher 33 gespeichert.
Wenn sich eine Marke auf dem Bus befindet, entscheidet ein Identifikationssymbol-Komparator 34 durch Vergleichen des Identifizierungsfeldes der Marke mit den Identifikationssymbolen in dem Identifikationssymbol-Speicher 33, ob die Marke für diese Datenflußkarte erforderlich ist.
Wenn die Marke benötigt wird, signalisiert der Komparator 34 einer passenden Speicherdateneingabe-Steuerschaltung 35, die Marke aufzunehmen und ihre Daten an einer entsprechenden Stelle in einem Speicher 36 zu speichern.
Vorteilhafterweise ist der Speicher 36 vom FIFO-Typ (First-In-First-Out-Typ) , bei dem die als erstes eingegebenen Daten auch als erstes entnommen werden. Ein solcher Speicher braucht jedoch nicht notwendigerweise verwendet zu werden. Der Speicher 36 ist zweckmäßigerweise derart organisiert, daß er getrennte Datenspeicher-Bereiche 36a, 36b, 36c usw. aufweist, die jeweils nur zum Speichern solcher Daten dienen, die zu Marken mit den entsprechenden Identifikationssymbolen gehören. Jeder Datenspeicher-Bereich kann vom FIFO-Typ sein. Beispielsweise werden in dem Speicherbereich 36a die Datenfeldwerte der Marken für den Pfad A gespeichert, die das Identifikationssymbol "1" aufweisen.
Genauso werden jeweils in den Speicherbereichen 36b bis 36g nur die Daten aus den Datenfeldern der Marken mit den Identifikationssymbolen "2", "3", "6", "7", "8" bzw. "9" gespeichert.
Die Reihenfolge, in der sich die verschiedenen Marken auf dem Flußbus 21 befinden, ist willkürlich oder zufällig. Der Eingangsmarkenprozessor 30 jedoch sammelt die Daten in einer geeigneten Reihenfolge, um sie so dem Funktionsverarbeitungsteil 24 zuzuführen.
Beispielsweise kann die erste Marke auf dem Bus 21 das Identifikationssymbol "5" haben. Wenn diese Marke von dieser Datenflußkarte nicht benötigt wird, erkennt der Komparator 34, daß das Identifikationssymbol "5" nicht mit einem der in dem Speicher 33 gespeicherten Identifikationssymbolen übereinstimmt. Also wird diese Marke durch die Datenflußkarte nicht aufgenommen.
Die nächste Marke auf dem Bus 21 kann z.B. das Identifikationssymbol (die Flagge) "3" haben. In diesem Fall steuert der Identifikationssymbol-Komparator 34 die Dateneingabe-Steuerschaltung 35 derart an, daß die Marke in der Datenflußkarte aufgenommen wird. Der zugehörige Datenwert (symbolisch durch "C, " gekennzeichnet) wird an der ersten Speicherstelle im Speicherbereich 36c gespeichert. Die nächste aufgenommene Marke kann z.B. das Identifikationssymbol "2" aufweisen, und ihr Datenwert B1 wird an der ersten Speicherstelle im Speicherbereich 36b abgespeichert. Es kann z.B. möglich sein, daß die nächste von dem EMP 30 aufgenommene Marke ebenfalls das Identifikationssymbol "3" aufweist. Ihr Datenwert C„ wird an der in der Reihenfolge nächstfolgenden Speicherstelle im Speicherbereich 36c abgespei-0 chert. Jetzt sind zwei Datenwerte von dem Pfad C im FIFO-Speicher 36 gespeichert. Der Funktionsverarbeitungsteil 24 führt jedoch jetzt noch nicht die erste Berechnung der Funktion f„ aus, da der erste Datenwert
- 2Ϊ -
für den Pfad A bis jetzt noch nicht empfangen worden ist.
Wenn diese Daten als nächstes empfangen werden, bewirkt der Komparator 34 die Eingabe des entsprechenden Datenwertes A^ der Marke mit dem Identifikationssymbol "1" in die erste Speicherposition des Speicherbereichs 36a. Der Inhalt des FIFO-Speichers 36 entspricht dann der in Fig. 5 gezeigten Situation. Zu diesem Zeitpunkt erkennt eine Speicherausgabesteuerung, daß ein zur Ausführung der Funktion f? erforderlicher kompletter Datensatz (die Werte A-., B- und C. umfassend) im speicher 36 vorhanden ist. Die Steuerung 37 übernimmt daraufhin diese Werte aus dem Speicher 36, wobei die als erstes in den Speicher 36 eingegebenen Daten auch als erstes aus diesem herausgenommen werden, und führt diese Daten zur Ausführung der Funktion f„ dem Funktionsverarbeitungsteil· 24 zu.
Wenn diese Funktion ausgeführt worden ist, gibt der Funktionsverarbeitungsteil 24 einen Datenwert aus (d.h., einen Ausgabewert D, der Funktion f„, der aus den Eingabedatenwerten A1 , B1 und C1 berechnet worden ist) , der zu dem Pfad D gehört. Dieser Datenwert D1 wird einer Schaltung 38 zum Erstellen einer Marke (Fig. 5) in dem Ausgangsmarkenprozessor 31 zugeführt. Die Schaltung 38 erkennt, daß der Ausgabedatenwert D, von der die Funktion f„ ausführenden Verarbeitungseinheit erzeugt worden ist, so daß dieser Datenwert einen Datenwert auf dem Pfad D darstellt und daher in eine Marke mit dem Identifikationssymbol "4" umgesetzt werden muß . Dementsprechend erzeugt die Schaltung 3 8 eine Marke mit dem Identifikationssymbol "4" und dem Datenwert D1 .
Diese erzeugte Marke wird in eine Warteschlage 39 für die Ausgabe von Marken eingereiht, die einen FIFO-Speicher aufweist. Die Einreihung der Marke in die Warteschlage 39 bewirkt in einer Abruf- und Zuweisungsschaltung 40 das Senden eines Abrufsignals über den Bus 21 zur Zuweisungseinheit 32 hervor. Dieses Signal zeigt an, daß die Datenflußkarte eine Marke aufweist, die an den Bus 21 übergeben werden kann. Wenn die Zuweisungseinheit 32 ein Zuweisungssignal an die Datenflußkarte zurückschickt, gibt die Steuerschaltung 40 die erste in der Warteschlange 39 gespeicherte Marke an den Bus 21 aus.
Die Anzahl der Markenprozessoren 23, die gemäß dem Aufbau nach Fig. 1 mit einem einzigen Flußbus 21 verbunden werden können, ist aufgrund bestimmter Begrenzungen bei der praktischen Realisierung eines solchen Systems limitiert. Wenn mehr Markenprozessoren 23 an einen einzigen Flußbus angeschlossen werden, ist natürlich auch mehr Verarbeitungskapazität verfügbar, und daher werden auch mehr Marken in einer vorgegebenen Zeitspanne erzeugt. Die Ubertragungsrate der Marken auf dem Flußbus begrenzt jedoch nach oben hin die Anzahl der Marken, die zwischen den Datenflußkarten innerhalb einer vorgegebenen Zeitspanne übertragen werden können.
Diese Begrenzung kann durch den in Fig. 6 dargestellten Aufbau eines Systems umgangen werden. In Fig. 6 wird gezeigt, wie die Systemkapazität durch Verwendung eines oder mehrerer unabhängiger jedoch miteinander in Beziehung stehender Flußbus-Untersysteme, die alle den Aufbau nach Fig. 1 haben, wesentlich erhöht werden kann. Dies wird durch die Verwendung geeigneter
Bus-zu-Bus-Markenprozessoren 41A, 41B erreicht, die die Übertragung von Marken zwischen den separaten Flußbus-Unter systemen ermöglichen.
Das beispielhafte System nach Fig. 6 kombiniert den Datenflußprozessor 20 nach Fig. 1, der die Datenflußkarten (DFK) 23a, 23b, ..., 23i aufweist, mit einem Datenflußprozessor 20Ά, der dem Datenflußprozessor 20 gleicht und einen Flußbus 21A sowie mit diesem verbundene Markenprozessoren oder Datenflußkarten 23j, 23k, ..., 23m aufweist. Eine vom Aufbau her der Zuweisungseinheit 32 gleichende Zuweisungseinheit 32A ist mit dem Flußbus 21A verbunden.
Die im Aufbau sich gleichenden Bus-zu-Bus-Markenprozessorkarten 41A und 41B verbinden die Flußbusse 21 und 21A miteinander. Zusammen ermöglichen sie die übertragung von Marken zwischen den Bussen 21 und 21A. Es werden jedoch nicht alle sich auf einem Bus befindenden Marken von diesem auf den anderen übertragen. So werden nur diejenigen Marken vom Bus 21 zum Bus 21A übertragen, die für Funktionen benötigt v/erden, die von den mit dem Bus 21A verbundenen Markenprozessoren 23j bis 23m ausgeführt werden. Umgekehrt werden nur solche Marken vom Bus 21A zum Bus 21 übertragen, die für Funktionen verwendet werden müssen, die von den mit den Bus 21 verbundenen Markenprozessoren 23a bis 23i ausgeführt werden. Auf diese Weise kann ein optimaler Markendurchlauf auf jedem der Flußbusse 21 und 21A erzielt werden, ohne daß beide Flußbusse alle in dem gesamten System erforderlichen Marken verarbeiten müssen. Anders ausgedrückt bedeutet das, daß jeder der Flußbusse 21 und 21A nur diejenigen Marken zu verarbeiten hat, die zur
Ausführung der Funktionen in den mit dem entsprechenden Bus verbundenen Markenprozessoren erforderlich sind.
Die Bus-zu-Bus-Karte 41A selbst ähnelt einem Markenprozessor. Das heißt, vom Flußbus 21 aus betrachtet, sieht die Bus-zu-Bus-Karte 41A wie jeder andere an den Bus angeschlossene Markenprozessor aus.
Im einzelnen weist die Bus-zu-Bus-Karte 41A einen Eingangsmarkenprozessor 3OA auf, der einen Identifikationssymbol-Speicher 33A hat. In diesem Speicher 33A jedoch ist eine Liste der Identifikationssymbole aller Marken gespeichert, die für den Verarbeitungsteil jeder mit dem Flußbus 21A verbundenen Datenflußkarte 23j bis 23m erforderlich sind. Ein Identifikations-Komparator 34Ά vergleicht die Identifikationssymbole einer jeden Marke auf dem Bus 21 mit den im Speicher 33A gespeicherten Identifikationssymbolen derjenigen Marken, die für den Bus 21A bestimmt sind. Wenn der Komparator 34A erkennt, daß die auf dem Bus 21 befindliche Marke für den Bus 21A bestimmt ist, steuert der Komparator 34A ein Gatter 42A an, das die Marke vom Bus 21 zu einer Treiberschaltung 43A überführt. Die Treiberschaltung 43A ihrerseits überträgt die Marke zu einer Empfängerschaltung 44B der mit der Karte 4IA verbundenen Bus-zu-Bus-Karte 41B.
Die Karte 41B, die im Aufbau der Bus-zu-Bus-Karte 41A gleicht, weist einen Ausgangsmarkenprozessor 3IB auf, der über eine Warteschlange 39B für die Ausgabe von Marken verfügt, durch die die von der Empfängerschaltung 44B übertragenen Marken in eine Warteschlange eingereiht oder in einen FIFO-Speicher eingeschrieben werden. Der AMP 3IB weist ebenfalls eine Abruf- und Zu-
weisungsschaltung 4OB auf. Befindet sich eine Marke in der Warteschlange 39B, so wird von der Abruf- und Zuweisungsschaltung 4OB ein Abrufsignal auf dem Flußbus 21A erzeugt. Die Zuweisungseinheit 32A behandelt die Bus-zu-Bus-Karte 4IB genauso wie jeden der mit dem Flußbus 21A verbundenen Markenprozessoren 23j bis 23m. Das heißt, bei Empfang des Abrufsignals von der Bus-zu-Bus-Karte 4IB erzeugt die Zuweisungseinheit 3 2A unter Berücksichtigung der Priorität ein Zuweisungssignal für die Bus-zu-Bus-Karte 41B. Infolge dieses Zuweisungssignals überträgt der AMP 3IB die Marke von der Warteschlange 39B zum Flußbus 21A. Die übertragung einer Marke vom Bus 21 zum Bus 2IA ist somit erfolgt.
Umgekehrt erfolgt die übertragung einer Marke vom Bus 2lA zum Bus 21 über den Eingangsmarkenprozessor 31B der Bus-zu-Bus-Karte 4IB, eine mit diesem verbundenen Treiberschaltung 43B, eine Empfängerschaltung 44A der Bus-zu-Bus-Karte 41A und einen Ausgangsmarkenprozessor 3lA. Dabei enthält der Identifikationsspeicher 33B in dem EMP 31B eine Liste^der Identifikationssymbole all derjenigen Marken, die zur Ausführung aller Funktionen auf dem Bus 21 erforderlich sind.
Bei dem Datenflußprozessorsystem nach Fig. 6 arbeitet jedes Untersystem 20 und 2OA vollkommen unabhängig von dem anderen. Es ist tatsächlich so, daß jedes der Untersysterne 20 und 2OA "nichts von dem anderen System weiß". Das Interface, das aus den verbundenen Bus-zu-Bus-Karten 41A und 41B besteht, stellt sich den einzelnen Systemen 20 und 2OA genauso wie jeder andere mit dem zugehörigen Flußbus 21 oder 2IA verbundene Markenprozessor 23 dar.
Der Datenflußprozessor kann nicht nur im Zusammenhang mit einem oder zwei Flußbussen, wie es in den Fign. 1 und 6 dargestellt ist, verwendet werden. Vielmehr ist es auch möglich, mehrere Untersysteme gemäß dem aus Fig. 1 zu einem Gesamtsystem zu verbinden, wobei jedes Untersystem seinen eigenen Flußbus hat. Darüber hinaus sind die Verbindungen zwischen den Flußbussen frei wählbar.
Ein Beispiel eines derartigen Mehrfachflußbus-Systems ist schematisch in Fig. 7 dargestellt. Bei diesem System weist jedes Datenflußprozessor-Untersystem 2OB bis 2OF jeweils seinen eigenen Flußbus 21B bis 21F auf. Jedes der Unter sy sterne ist wie das aus Fig. 1 aufgebaut, wobei jedes seine eigenen Markenprozessoren 23B bis 23F und jeweils seine eigene Zuweisungseinheit 32B bis 32F aufweist.
Bei dem System gemäß Fig. 7 ist das Untersystem 2OB mit den Untersystemen 2OC, 2OD und 2OF durch jeweils ein Paar von Bus-zu-Bus-Karten 41B-C, 41B-D und 41B-F verbunden. Ebenso ist das Untersystem 2OC mit den Untersystemen 2OD und 2OF durch die Bus-zu-Bus-Karten 41C-D und 41C-F verbunden. Schließlich sind auf gleiche Art und Weise die Untersysteme 2OE und 2OF über die Bus-zu-Bus-Karte 4IE-F verbunden.
Wie bei dem System gemäß Fig. 6 arbeiten die Bus-zu-Bus-Karten 41 derart, daß zwischen den verbundenen Bussen nur solche Marken übertragen werden, die von dem jeweils Daten empfangenden Bus benötigt werden.
Wie in Fig. 8 dargestellt, kann die Dateneingabe und -ausgabe des Datenflußprozessors 20 aus einer oder
mehrerer mit dem Flußbus 21 verbundenen Eingabe/ Ausgabe-Karten (I/O-Karten) 45 aufgebaut werden. Eine derartige I/O-Karte 45 ist im wesentlichen wie ein Markenprozessor 23 aufgebaut. Jedoch anstelle einer in dem Funktionsverarbeitungsteil 24 enthaltenen Verarbeitungseinheit 25 weist die I/O-Karte 45 einen passenden Eingangsempfänger 46 und/oder Ausgangstreiber 47 auf.
In dem Eingabemarkenprozessor 3Oi der I/O-Karte 45 ist eine Liste der Identifikationssymbole von denjenigen Marken gespeichert, die mit Daten versehen sind, die über den Ausgangstreiber 47 zu Peripheriegeräten, wie z.B. einem Modem, einem Drucker, einem CRT-Bildschirm o.dgl., übertragen werden sollen. Immer wenn sich eine Marke auf dem Bus 21 befindet, die über den Ausgangstreiber 47 auszugebende Daten enthält, wird diese Marke durch den EMP 3Oi aufgenommen und über den Ausgangstreiber 47 zu dem Peripheriegerät gesandt.
Umgekehrt werden in den Flußbus 21 einzugebende Daten über den Eingangsempfänger 46 an einen Ausgangsmarkenprozessor 31i gegeben, in dem sie zu einer Marke mit passendem Identifikationssymbol zusammengesetzt werden.
Die neue Marke wird daraufhin genauso wie bei dem im Zusammenhang mit der Fig. 5 beschriebenen Ausgabevorgang durch den Ausgabemarkenprozessor 31 in die Warteschlange eingereiht und an den Bus 21 übergeben.
Die Konfiguration und Initialisierung des Datenflußprozessor-Gesamtsystems kann mit einem Hilfscomputer oder einer CPU 50 realisiert werden, die gemäß Fig. 9 mit den zum Datenflußprozessor 20 gehörenden Markenprozessoren oder Datenflußkarten verbunden ist. Jede
mit dem Flußbus 21 gemäß Fig. 1 verbundene Datenflußkarte (Markenprozessor) 23a, 23b, ..., 23i ist z.B. über einen separaten Bus (als "LDF-Bus" bezeichnet) 51 mit der CPU 50 verbunden. Ein Vorteil dieser Anordnung besteht darin, daß die speziellen Funktionen, die von jeder der Verarbeitungseinheiten 25 in den Datenflußkarten 23 ausgeführt werden, durch die Steuerung des Computers 50 angewählt und initialisiert werden können.
Beispielsweise kann die Verarbeitungseinheit 25a selbst einen Mikroprozessor und einen Programmspeicher aufweisen, in dem das Programm oder die Programme gespeichert sind, gemäß derer der Mikroprozessor eine oder mehrere spezielle Funktionen f.. , f9, usw. ausführt.
Diese Funktionen und ihre entsprechenden Programme brauchen nicht im voraus in die Verarbeitungseinheit 25a eingegeben worden zu sein. Die Funktionen und ihre zugehörigen Programme können vom Computer 50 in die Verarbeitungseinheit 25a eingegeben werden, wenn der Datenflußprozessor 20 initialisiert wird. Durch eine derartige Anordnung ist der Datenflußprozessor sehr flexibel anwendbar.
Wenn ein Anwender, der ein bestimmtes Projekt ausführt, die Funktion (f ) der Fig. 3 durch die Verarbeitungseinheit 25a ausführen lassen möchte, kann er vor der eigentlichen Berechnung das zur Ausführung der Funktion (f ) geeignete Computerprogramm vom Computer 50 in die
3.
Verarbeitungseinheit 25a eingeben lassen. Die CPU 50 kann also auch zum Laden geeigneter anderer Funktionen in andere Verarbeitungseinheiten 25 innerhalb des Funktionsverarbeitungsteils 24 einiger oder aller Datenflußkarten oder Markenprozessoren 23, die mit dem Flußbus 21 verbunden sind, verwendet werden.
Dieser Funktionenladevorgang braucht nicht vor der eigentlichen Berechnung durch den Datenflußprozessor 20 erfolgen. Somit kann die CPU 50 die von dem Prozessorsystemen 20 durchgeführten Operationen überwachen und zu geeigneten Zeiten Veränderungen in das System dynamisch eingeben. Dazu verbindet eine Ablaufüberwachungs- und Prüfkarte 52 den Flußbus 21 mit dem LDF-Bus 51. Diese Karte 52 kann (mit Hilfe eines Eingangsmarken-Prozessors wie der EMP 30 nach Fig. 5) derart konfiguriert sein, daß Marken mit bestimmten Identifizierungssymbolen erkannt und die mit ihnen verbundenen Datenwerte überwacht werden. Der Computer 50 kann dann z.B. derart programmiert sein, daß er auf bestimmte Datenzustände in Marken mit bestimmten Identifikationssymbolen entsprechend antwortet. Infolge der Erfassung solcher Datenzustände kann der Computer 50 die von einer oder mehreren Verarbeitungseinheiten in der. Markenprozessoren 23 auszuführenden Funktionen austauschen oder verändern. Somit kann eine dynamische Kontrolle des Systems erfolgen.
Eine weitere zusätzliche Funktion des Computers 50, der zur Initialisierung und dynamischen Veränderung der Funktionen der Verarbeitungseinheiten verwendet wird, besteht darin, in die Identifikationssymbol-Speicher 33 (Fig. 5) eines jeden Eingangsmarkenprozessors 30 die Liste von Identifikationssymbolen derjenigen Marken zu laden, die für den zugehörigen Funktionsverarbeitungsteil 24 erforderlich sind. Wenn im Fall des oben beschriebenen Beispiels die CPU 50 die Verarbeitungseinheit 25a zur Verarbeitung der Funktion f„ nach Fig. 4 setzt, gibt die CPU 50 somit gleichzeitig die Identifikationssymbole "1", "2" und "3" in den Identifi-
- .atf -
kationssymbol-Speicher 33 ein. Diese Identifikationssymbole gehören nämlich zu solchen Marken, die die zur Ausführung der Funktion f0 notwendigen Daten enthalten. Auf gleiche Art und Weise lädt die CPU 50 solche Informationen in die Schaltung 38 zum Erstellen einer Marke {Fig. 5) , die zum Erstellen einer das Identifikationssymbol "4" aufweisenden Marke aus den Ausgangsdaten der Verarbeitungseinheit 25a, die zum Pfad D gehören, notwendig sind.
Wenn das Datenflußprozessorsystem mehr als einen Flußbus aufweist, initialisiert die CPU 50 auch die Bus-zu-Bus-Karten (in Fig. 6 die Karten 41A, 41B) und gibt in die Identifikationssymbol-Speicher (33Ά und 33B) die Identifikationssymbolwerte solcher Marken ein, die jeweils von einem Bus zum anderen (vom Bus 21 zum Bus 21A) und zurück übertragen werden müssen.
Eine andere Funktion der CPU 50 (Fig. 9) besteht darin, Fehlfunktionen des Prozessors 20, während dieser arbeitet, zu überwachen. Wenn beispielsweise eine bestimmte Verarbeitungseinheit, z.B. die Verarbeitungseinheit 25a im Markenprozessor 23, während der Verarbeitung fehlerhaft arbeitet, kann dies von der CPU 50 erkannt werden. so kann sie beispielsweise erkennen, daß Marken mit dem Identifikationssymbol "4" (, die z.B. von der Verarbeitungseinheit 25a ausgegeben werden müßten,) für eine bestimmte Zeitlang ausbleiben. In diesem Fall kann die CPU 50 das System dynamisch verändern, so daß eine andere, jedoch intakte, Verarbeitungseinheit 25 die Funktion ausführt, die zuvor der fehlerhaften Verarbeitungseinheit 25a zugewiesen worden war.
Eine weitere Funktion der CPU 5 0 besteht in der Optimierung der Konfigurationen des Datenflußprozessors 20 für eine bestimmte Berechnung. Wenn beispielsweise eine bestimmte Berechnung mehr Operationen für eine bestimmte Funktion f erfordert, als dies bei der Anzahl der Rechenvorgänge für andere erforderliche Funktionen der Fall ist, kann die CPU 50 das System derart konfigurieren, daß mehr als eine Verarbeitungseinheit 25 die Funktion f ausführt.
Bei dem Datenflußprozessorsystem wird kein Globalspeicher verwendet, auf den alle Verarbeitungseinheiten (oder Funktionen) gleichzeitig zuzugreifen versuchen. In einem solchen Globalspeichersystem wird die Rechengeschwindigkeit durch den "konkurrierenden" Zugriff auf die gemeinsame Datenbasis (auf den Globalspeicher) begrenzt. Diese Begrenzung und der damit verbundene "von Neumann Engpaß" treten bei dem Datenflußprozessorsystem nicht auf.

Claims (1)

  1. ANSPRÜCHE
    1. Datenflußprozessorsystem mit mindestens einem Datenflußprozessor und einem Bus zum übertragen von Daten,
    dadurch gekennzeichnet,
    - daß über den Bus (21) Informationsmarken (22) übertragen werden, die aus einem Identifizierungsteil (22t) und einem Datenteil (22d) bestehen, und
    - daß mit dem Bus (21) mehrere Markenprozessoren (23) verbunden sind, von denen jeder die folgenden Elemente aufweist:
    mindestens eine Verarbeitungseinheit (25) zum
    Ausführen einer bestimmten Funktion (f ) bei
    bestimmten Eingabedaten, die durch ein oder mehrere unterschiedliche Identifikationssymbole gekennzeichnet sind,
    einen Eingangsmarkenprozessor (30) zur überwachung des Identifizierungsteils (22t) jeder auf dem Bus (21) befindlichen Marke (22) und zum Speichern der Daten im Datenteil (22d) jeder solchen Marke (22), die einen Identifizierungsteil (22t) aufweist, der einem der spezifischen die Eingabedaten für die Verarbeitungseinheit (25) kennzeichnenden Identifikationssymbole entspricht, wobei die Verarbeitungseinheit (25) ihre Funktion (f ) mit den gespeicherten Daten
    ausführt, sobald alle erforderlichen Daten angesammelt sind, und
    einen Ausgangsmarkenprozessor (31) zum Zusammensetzen einer Marke, die aus einem von der Verarbeitungseinheit (25) erzeugten Ausgabedatenwert und einem diesen Ausgabedatenwert
    kennzeichnenden Identifikationssymbol besteht, wobei die so erstellte Marke anschließend an den Bus (21) übergeben wird.
    Datenflußprozessorsystem nach Anspruch 1, dadurch gekennzeichnet, daß eine die Markenprozessoren (23) abrufende und über den Bus (21) mit jedem der Markenprozessoren (23) verbundene Zuweisungsvorrichtung (32) feststellt, welcher Markenprozessor (23) über an den Bus (21) zu übertragene Marken verfügt, und die übertragung der Marken von dem Markenprozessor (23) zu dem Bus (21) gemäß einem "sich drehenden" Prioritätsschema ermöglicht.
    Datenflußprozessorsystem nach Anspruch 1, dadurch gekennzeichnet, daß ein erster Bus (21) eines ersten Datenflußprozessors (20) mit einem zweiten Bus (2IA) mindestens eines weiteren Datenflußprozessors (20A) durch einen Bus-zu-Bus-Markenprozessor (41A,41B) verbunden ist, bei dem eine erste Vorrichtung (33A,34A) anhand des Identifizierungsteils der auf einem der untereinander verbundenen Busse (21,21A) befindlichen Marken erkennt, welche dieser Marken von Verarbeitungseinheiten des zweiten verbundenen Busses (21,21A) benötigt werden, und bei dem eine zweite Vorrichtung (43A,43B,44A,44B) nur die erforderlichen Daten von dem ersten auf den zweiten Bus überträgt.
    4. Datenflußprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein mit den Markenprozessoren (23) verbundener Computer (50) die Verarbeitungseinheiten (25) der Markenprozessoren (23) zur Ausführung der ihnen zugewiesenen spezifischen Funktionen initialisiert bzw. konditioniert, wobei der Computer (50) die Eingangsmarkenprozessoren (30) entsprechend initialisiert bzw. konditioniert, damit diese nur Daten von Marken mit solchen Identifikationssymbolen speichern, die Eingangspfade (A,B,C) der spezifischen Funktionen darstellen.
    5. Datenflußprozessorsystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Funktionsverarbeitungsteile (24) konfigurierbar sind, so daß zu einem "Datengraph" zusammengefügte voneinander abhängige Funktionen (f.. , f „ , f _ , f ., f,.) ausführbar sind, und daß der Computer (50) den Verarbeitungseinheiten (25) die von ihnen auszuführenden Funktionen (f.. , f „ , f _ , f ., f _) zuweist und den Markenprozessoren (23) die Identifikationssymbole der den Funktionen (f., , f „ , f_ , f ., f ^) entsprechenden Ein- und Ausgabepfaden zuweist.
    6. Datenflußprozessorsystem nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Eingangsmarkenprozessor (31) eines Markenprozessors (23) eine Identifikationssymbol-Speichervorrichtung (33) zur Speicherung der IdentifikationsSymbole der Eingangspfade aller von den Verarbeitungseinheiten (25) dieses Markenprozessors (23) auszuführenden Funktionen aufweist und eine Identifikationssymbol-Vergleichsvorrichtung (34) zum
    Vergleichen des Identifikationssymbols einer jeden Marken auf dem Bus (21) mit den in der Identifikationssymbol-Speichervorrichtung (33) gespeicherten Identifikationssymbolen sowie zum übernehmen solcher Marken von dem Bus (21) durch den Markenprozessor (23), die ein entsprechendes Identifikationssymbol haben, aufweist.
    7. Datenflußprozessorsystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß eine Speichervorrichtung (35,36) vorübergehend mindestens die Daten aus den Datenteilen (22d) der vom Bus (21) übernommenen Marken (22) speichert und daß eine Vorrichtung (37) zum Zusammenstellen eines Datensatzes an jede Verarbeitungseinheit (25) die vorübergehend gespeicherten Daten in Form eines kompletten Datensatzes übergibt, wobei die Daten zuvor in der Speichervorrichtung (35) gespeichert worden sind und der Datensatz Daten für alle zur Ausführung der spezifischen Funktion der Verarbeitungseinheit (25) erforderlichen Eingabepfade umfaßt.
    8. Datenflußprozessorsystem nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der Ausgangsmarkenprozessor (31) des Markenprozessors (23) eine Vorrichtung (38) zum Erstellen einer Marke aufweist, die eine Marke erzeugt, deren Identifikationssymbol einen Ausgangspfad einer durch die Verarbeitungseinheit (25) des Markenprozessors
    (23) ausgeführten Funktion kennzeichnet und in ihrem Datenteil (22d) einen Datenwert aufweist, der von der Verarbeitungseinheit (25) für den entsprechenden Ausgabepfad erzeugt worden ist.
    9. Datenflußprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Ausgangsmarkenprozessor (31) des Markenprozessors (23) eine Ausgabewarteschlangevorrichtung
    (39) zur vorübergehenden Speicherung von durch die Schaltung (38) zum Erstellen einer Marke erzeugten Marken und eine Abruf- und Zuweisungsvorrichtung
    (40) aufweist, die anzeigt, daß eine Marke in der Ausgabewarteschlangevorrichtung (39) zum Übergeben an den Bus (21) bereit ist, und als Antwort auf ein Zuweisungssignal diese Marke von der Ausgabewarteschlangevorrichtung (3 9) an den Bus (21) übergibt.
    10. Datengesteuerter Markenprozessor, der mit einem Bus verbunden ist, auf den Marken übertragen werden, die jeweils ein einen Pfad-Identifier enthaltendes Identifizierungsfeld und ein Operandendatenfeld aufweisen,
    dadurch gekennzeichnet,
    - daß mindestens eine Verarbeitungseinheit (25)
    vorgesehen ist, die eine bestimmte Funktion (f )
    mit Operandendaten für einen oder mehreren Eingabepfaden (A,B,C) dieser Funktion (f ) ausführt
    und auf entsprechenden Ausgabepfaden (D) dieser Funktion (f ) ein oder mehrere Ausgabedaten er-
    el
    zeugt,
    - daß eine Eingangsmarkenprozessorvorrichtung (30) vorgesehen ist, die anhand der Identifizierungsfelder der Marken diejenigen auf dem Bus (21) übertragenen Marken identifiziert, die den zu der Verarbeitungseinheit (25) gehörenden Eingabepfaden (A,B,C) entsprechen, und die
    Operandendaten der identifizierten Marken vorübergehend speichert, und
    - daß die Verarbeitungseinheit (25) die Funktion (f ) ausführt, sobald ein kompletter Satz von
    el
    Eingabe-Operandendaten aller Eingabepfade (A,B,C) der Funktion (f ) durch die Eingangs-
    et
    markenprozessorvorrichtung (30) gespeichert worden ist.
    11. Markenprozessor nach Anspruch 10, dadurch gekennzeichnet, daß eine Ausgangsmarkenprozessorvorrichtung (31) vorgesehen ist, die neue Marken zusammenstellt und an den Bus (21) ausgibt, wobei die Marken jeweils einen den Ausgabepfad einer von der Verarbeitungseinheit (25) ausgeführten Funktion kennzeichnenden Identifizierungsfeldwert und einen von der Verarbeitungseinheit (25) für den Ausgabepfade erzeugten Operadendatenfeldwert aufweisen.
DE19853542436 1984-12-05 1985-11-30 Datenflussprozessorsystem Withdrawn DE3542436A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US67835884A 1984-12-05 1984-12-05

Publications (1)

Publication Number Publication Date
DE3542436A1 true DE3542436A1 (de) 1986-06-05

Family

ID=24722458

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19853542436 Withdrawn DE3542436A1 (de) 1984-12-05 1985-11-30 Datenflussprozessorsystem

Country Status (5)

Country Link
JP (1) JPS61184641A (de)
DE (1) DE3542436A1 (de)
FR (1) FR2574197A1 (de)
GB (1) GB2168182A (de)
IL (1) IL77145A0 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1329431C (en) * 1988-09-02 1994-05-10 Pierre A. Radochonski Single bus graphics data processing pipeline
EP0408810B1 (de) * 1989-07-20 1996-03-20 Kabushiki Kaisha Toshiba Mehrprozessor-Computersystem
GB9705908D0 (en) * 1997-03-21 1997-05-07 Abbotsbury Software Ltd Apparatus for the management of digital information
US6374319B1 (en) 1999-06-22 2002-04-16 Philips Electronics North America Corporation Flag-controlled arbitration of requesting agents
JP4317296B2 (ja) * 1999-09-17 2009-08-19 株式会社ターボデータラボラトリー 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1503324A (en) * 1974-02-28 1978-03-08 Burroughs Corp Digital data processors and methods of operating such processors
GB2091919B (en) * 1980-03-21 1984-08-08 Concurrent Processing Systems Computer system and interface therefor
US4387441A (en) * 1981-04-16 1983-06-07 Ncr Corporation Data processing system wherein at least one subsystem has a local memory and a mailbox memory within the local memory for storing header information
GB2107497B (en) * 1981-10-15 1986-01-15 Nat Res Dev Digital computers
FR2538140B1 (fr) * 1982-12-21 1988-06-24 Thomson Csf Mat Tel Dispositif de couplage de bus pour systeme de traitement de donnees a bus multiples

Also Published As

Publication number Publication date
IL77145A0 (en) 1986-04-29
FR2574197A1 (fr) 1986-06-06
JPS61184641A (ja) 1986-08-18
GB8525140D0 (en) 1985-11-13
GB2168182A (en) 1986-06-11

Similar Documents

Publication Publication Date Title
DE69628480T2 (de) Ausnahmebehandlung in einem Datenprozessor
DE102005008520B4 (de) Verfahren, Computerprogramm-Produkt und Drucksystem zum Sortieren von Druckjobs in eienm solchen Drucksystem
DE3151745C2 (de)
DE3606211A1 (de) Multiprozessor-computersystem
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE3116100A1 (de) Sprungabschaetz-zentraleinheit
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE3727017C2 (de)
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE4411389C2 (de) Programmierbare Steuereinheit und Betriebsverfahren
DE3538214C2 (de) Multiprozessorsystem
DE1191145B (de) Elektronische Zifferrechenmaschine
DE3542436A1 (de) Datenflussprozessorsystem
DE2726679A1 (de) Kanalsteuerung fuer datenverarbeitungsanlagen und verfahren zu ihrem betrieb
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE3410497A1 (de) Rechneranordnung
DE112019000308T5 (de) Computerprogrammprodukt und Recheneineit
DE19814359C2 (de) Interface-Einrichtung, Verfahren und Überwachungs-System zum Überwachen des Status einer Hardware-Einrichtung
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
DE60018700T2 (de) System für das fernladen von dateien in mehrere rechner an bord eines kraftahrzeugs
DE19709975A1 (de) Mikrocomputer
EP1179428B1 (de) Verfahren und Vorrichtung zum Abarbeiten von Verfahrensschritten
DE10155486A1 (de) Anordnung zur Verarbeitung von Zustandsinformationen externer Einheiten

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee