DE68925263T2 - Verfahren zur Ausführung eines kombinierten Schalters zur Unterstützung von Parallelverarbeitung - Google Patents

Verfahren zur Ausführung eines kombinierten Schalters zur Unterstützung von Parallelverarbeitung

Info

Publication number
DE68925263T2
DE68925263T2 DE68925263T DE68925263T DE68925263T2 DE 68925263 T2 DE68925263 T2 DE 68925263T2 DE 68925263 T DE68925263 T DE 68925263T DE 68925263 T DE68925263 T DE 68925263T DE 68925263 T2 DE68925263 T2 DE 68925263T2
Authority
DE
Germany
Prior art keywords
processors
ring
message
shared
variable
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 - Fee Related
Application number
DE68925263T
Other languages
English (en)
Other versions
DE68925263D1 (de
Inventor
William Cain Brantley
Harold Stuart Stone
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68925263D1 publication Critical patent/DE68925263D1/de
Publication of DE68925263T2 publication Critical patent/DE68925263T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Description

  • Die vorliegende Erfindung befaßt sich mit einem Verfahren zum Ausführen kombinierter Schalter, die dafür verwendet werden, Parallelverarbeitung gemäß der Einleitung von Anspruch 1 zu unterstützen, und auf einen kombinierten Schalter gemäß der Einleitung von Anspruch 6.
  • Gottlieb et al. beschreiben in einem im Februar 1983 in den IEEE Transactions on Computers (Bd. C-32, Nr. 2) veröffentlichen Artikel mit dem Titel "The NYU Ultracomputer - Designing an MIMD Shared Memory Parallel Computer" den Einsatz eines mehrstufigen Schaltnetzwerkes als kombinierten Schalter.
  • Der in dem Artikel von Gottlieb et al. beschriebene Rechner realisiert eine Abruf- und Addieranweisung. Die Wirkung dieser Anweisung besteht, wenn sie gleichzeitig von N Prozessoren ausgeführt wird, die eine einzelne gemeinsam genutzte Variable zu aktualisieren versuchen, darin, die Aktualisierungsinformation in dem Schaltnetzwerk so zu kombinieren, daß nur ein einziger Zugriff zum physischen Speicher notwendig ist, um die N Aktualisierungen zu bewirken. Eine zweite Wirkung der Anweisung besteht darin, daß an jeden der N Prozessoren ein Ergebnis zurückgeschickt wird, das bei einigen seriellen Ordnungsvorgängen der Aktualisierungen zu beachten wäre. Daher simuliert der kombinierte Schalter das serielle Aktualisieren der gemeinsam genutzten Variablen, obwohl er tatsächlich die Aktualisierung auf parallele Weise durchführt. Die Speicherzugriffsgeschwindigkeit wird im Hinblick auf die mögliche Spitzenzugriffsgeschwindigkeit stark vermindert, und die Prozessoren können ihre Aktionen im erforderlichen Fall synchronisieren und serialisieren, dennoch wird die für den Ablauf erforderliche Zeit meist logarithmisch mit N ansteigen.
  • Der kombinierte Schalter von Gottlieb ist in sich komplex und kostenaufwendig, indem sein grundsätzlicher Einsatz bei der Unterstützung einer großen Anzahl (Hunderten oder sogar Tausenden) von Verarbeitungsknoten erfolgt. Viele Anwendungen, wie etwa lokale Datennetze, erfordern die Unterstützung von viel weniger (beispielsweise gewöhnlich weniger als fünfzig) Verarbeitungsknoten.
  • Allgemein bekannte ringförmige Netzwerke, wie etwa das im IEEE- Standard 802.5 beschriebene Zeichenfolgenetzwerk, wären für solche Anwendungen besser geeignet; die Verwendung von ringförmigen Netzwerken sowohl als kombinierter Schalter als auch als Mittel zur Durchführung von Prozessorensynchronisation ist jedoch bisher unbekannt.
  • Das Konzept der "Summenmodifizierung", wenn sie einen Zeichenfolgering durchlaufen, wird in einem Artikel von Livny et al. beschrieben, der von IEEE in den Proceedings of the 1985 International Conference on Parallel Processing mit dem Titel " Shift Arithmetic On A Token Ring Network" veröffentlicht wurde. Livny et al. lehren weder, daß ein Zeichenfolgering zur Synchronisation benutzt werden kann, noch deutet der Stand der Technik im allgemeinen an, daß eine Abruf- und Addieranweisung im Zusammenhang mit einem Ring zum Zwecke der Prozessorsynchronisation auszuführen wäre. Üblicherweise wird die Synchronisation in einem Ring durch andere Mittel bewerkstelligt, wie etwa das Durchlaufen von Zeichenfolgen.
  • Pfister et al. geben in einem von der IEEE in den Proceedings of the 1985 International Conference on Parallel Processing veröffentlichten Artikel mit dem Titel "The IBM Research Parallel Processor Prototype (RP3); Introduction and Architecture" und der Neches erteilten US-Patentschrift 4 543 630 vom 24. September 1985 weiterhin beispielsweise den Stand der Technik bei Schaltern an, die eine Kombinierfunktion ausführen.
  • Der von Pfister erläuterte kombinierte Schalter ist eine Realisierung des Rechners von Gottlieb et al. Er ist ebenfalls komplex und wieder aüf die Behandlung einer großen Anzahl von Verarbeitungsknoten gerichtet.
  • Das Patent von Neches beschreibt ein Baumnetzwerk, das dazu verwendet werden kann, mehrere Prozessoren zu synchronisieren, und das über das Netzwerk parallel einige Datenbankoperationen durchführen kann, wie etwa JOIN. Wenn jedoch die Synchronisation gemäß den Erkenntnissen von Neches durchgeführt worden ist, erzwingt der Synchronisationsbetrieb den seriellen Betrieb der Prozessoren, wohingegen dann, wenn die Synchronisation mit Abruf-und-Addition und einem kombinierten Schalter gemäß den Lehren von Gottlieb et al. durchgeführt wird, die Synchronisation es zuläßt, daß die Prozessoren anders als nach den Erkenntnissen von Neches unmittelbar mit paralleler Ausführung fortfahren.
  • Demgemäß wäre es wünschenswert, in der Lage zu sein, die Synchronisierfunktion unter Verwendung eines kombinierten Schalters durchzuführen, der keinen seriellen Prozessorbetrieb vorschreibt, d.h. der Schalter sollte während des Ablaufes der Synchronisation parallele Verarbeitung gewährleisten. Weiterhin wäre es wünschenswert, wenn ein derartiger Schalter leichter zu realisieren wäre als komplexe kombinierte Schalter, wie etwa solche, die von Gottlieb et al. und von Pfister et al. beschneben worden sind. Niedrigere Kosten, höhere Zuverlässigkeit und Minimierung der erforderlichen Speicherzugriffe wären weitere wünschenswerte Eigenschaften und Nebenprodukte eines derartigen Schalters.
  • Es ist daher Aufgabe der Erfindung, einen kombinierten Schalter zur Verfügung zu stellen, der die Speicherzugriffe vermindert, parallele Prozessoren synchronisiert, leicht auszuführen ist und den Einsatz komplexer Kombinierschaltertechnik zum Erreichen des grundlegenden Zieles der Erfindung vermeidet, insbesondere wenn die Anzahl der Verarbeitungsknoten im Schalter relativ klein ist (weniger als 50 Knoten).
  • Die Lösung dieser Aufgabe wird im Kennzeichnungsteil des Anspruches 1 beschrieben.
  • Erfindungsgemäß werden die vorerwähnten Ziele dadurch erreicht, indem eine Vielzahl von parallelen Verarbeitungsknoten in einer ringförmigen Anordnung konfiguriert werden, um als kombinierter Schalter zu dienen, und indem eine Synchronisieranweisung für den Schalter dadurch realisiert wird, daß parallele Verarbeitung ermöglicht und nicht verhindert wird. Gemäß der bevorzugten Ausführungsform der Erfindung ist der Ring ein Zeichenfolgering, und die Synchronisieranweisung ist eine Abruf- und Addieranweisung.
  • Die Erfindung weist Verfahren und eine Vorrichtung auf, die sowohl mit niedrigen Kosten verbunden als auch einfach zu realisieren sind, verglichen mit den komplexen kombinierten Schaltern, wie sie durch den Stand der Technik gelehrt und durch Gottlieb et al. und Pfister et al. verkörpert werden.
  • Wenn im Zeichenfolgering unter Einsatz der Abruf-und Addieranweisung synchronisiert wird, wird parallele Verarbeitung ermöglicht, wodurch sich die Erfindung von der von Livny et al. und Neches gelehrten Technik unterscheidet.
  • Diese und weitere Aufgaben und Eigenschaften wird der Fachmann bei Durchsicht der ausführlichen Beschreibung erkennen, wie sie nachstehend im.Zusammenhang mit den Zeichnungen vorgestellt wird.
  • Fig. 1 beschreibt ein Computernetzwerk / einen kombinierten Schalter, die gemäß den Erkenntnissen der Erfindung als Ring konfiguriert sind.
  • Fig. 2 ist ein Flußdiagramm, welches das Verhalten der Netzwerkschnittstelle für jeden Prozessorknoten des in Fig. 1 gezeigten Computernetzwerkes darstellt, wobei jeder Knoten die Ausführung einer Abruf- und Addieranweisung auf dem Ring unterstützt.
  • Fig. 3 ist eine Fortsetzung von Fig. 2, die insbesondere das Knotenverhalten für Prozessoren erläutert, die aktiv sind.
  • Fig. 4 ist ein Flußdiagramm, welches das Senderknotenverhalten für Nachrichten beschreibt, von denen festgestellt wird, daß sie sich in einem "INITIAL"-Status befinden.
  • Fig. 5 ist ein Flußdiagramm, das ein Verfahren zum Durchführen der Aktualisierung eines gemeinsam genutzten Speicherbereiches beschreibt.
  • Fig. 6 ist ein Flußdiagramm, welches das Verhalten eines gemeinsam genutzten Speicherknotens bei einer "AKTUALISIERUNGS"-Nachricht gemäß den Erkenntnissen einer Ausführungsform der Erfindung beschreibt.
  • Fig. 7 ist ein Flußdiagramm, welches das Senderverhalten für Nachrichten in einem Status "AKTUALISIERUNG ERLEDIGT" erläutert.
  • Fig. 8 beschreibt ein Beispiel eines Ringes mit 3 Verarbeitungsknoten und einem Speicherknoten zusammen mit einer zeitorientierten Tabelle, die anzeigt, wie sich gemäß den Erkenntnissen der Erfindung die Zustände der verschiedenen Prozessoren, Operandenwerte und Werte von gemeinsam genutzten Variablen über der Zeit verändern.
  • Das Folgende ist eine Beschreibung eines kombinierten Schalters, in dem die Prozessoren in einer ringförmigen Konfiguration angeordnet sind und in dem weiterhin die Abruf- und Addieranweisung zur Synchronisation realisiert ist.
  • Obwohl sie den Fachleuten allgemein bekannt sind, werden hier unmittelbar nachstehend die Eigenschaften der Abruf- und Addieranweisung, wie sie gemäß der bevorzugten Ausführungsform der Erfindung realisiert wurden, zum Zwecke der Vollständigkeit vorgestellt.
  • Die Abruf- und Addieranweisung hat die folgenden Eigenschaften:
  • 1. Abrufen-und-Addieren hat zwei Operanden - eine Adresse und ein Inkrement. Sind keine gleichzeitig ablaufenden Vorgänge vorhanden, wenn ein Prozessor die Anweisung mit einer Adresse A und einem Inkrement I heräusgibt, wird nach Abschluß der Anweisung das Feld an der Adresse A um den Wert I inkrementiert, und der Wert des Feldes an der Adresse A unmittelbar vor dem Inkrement wird an den Prozessor zurückgeschickt.
  • 2. Wenn zwei oder mehr Prozessoren gleichzeitig Abruf- und Addieranweisungen an die gleiche Adresse A herausgeben, wird das Feld in A aktualisiert, aber nur einmal für alle Anforderungen, und es empfängt die Summe der Inkremente. Die an die Prozessoren zurückgeschickten Werte bestehen aus einer Gruppe von Werten, die dann empfangen worden wären, wenn eine beliebige serielle Ausführung der Abruf- und Addieranweisungen stattgefunden hätte.
  • Ein Modell eines Computernetzwerkes, das die Erfindung unterstützt, ist eine ringförmige Verbindung, wie sie in Fig. 1 gezeigt wird. Jeder Prozessor 10 ist über zwei einseitig gerichtete Verbindungselemente an eine ringförmige Verbindung angeschlossen. Ein Verbindungselement ist eine Eingabeverbindung von einem vorhergehenden Prozessor, und die andere ist eine Ausgabeverbindung zu einem nachfolgenden Prozessor. Nachrichten zirkulieren rund um die Ringleitung und werden von einem Ringleitungsprotokoll gesteuert.
  • Innerhalb des Standes der Technik existieren viele Möglichkeiten für ein derartiges Protokoll. Wie hier vorstehend angegeben, beschreibt der IEEE-Standard 802.5 eine Ausführung, die als Zeichenfolgering bekannt ist. Zum Zwecke der Erläuterung wird ein Zeichenfolgering der Zusammenhang sein, in dem die Erfindung beschrieben wird.
  • An jedem Knoten des in Fig. 1 dargestellten Ringes existiert eine Netzwerkschnittstelle. An der Netzwerkschnittstelle wird jede ankommende Nachricht geprüft und um einen geringen Betrag verzögert am Ausgabeanschluß wiederholt. Auf diese Weise zirkulieren Nachrichten rund um den Ring von Prozessor zu Prozessor.
  • Es wird hier nachstehend angenommen, daß ein Senderknoten die Fähigkeit hat, den Ring zu unterbrechen, so daß Nachrichten, die ihren Ursprung im Sender haben, rund um den Ring zirkulieren und angehalten werden können, wenn sie schließlich den Sender erreichen, um den ständigen Durchlauf von Nachrichten zu verhindern. Diese Fähigkeit ist im IEEE-Standard 802.5 und in anderen Protokollen enthalten, die nach Stand der Technik existieren.
  • Gemäß der bevorzugten Ausführungsform der Erfindung gibt der Sender zur Durchführung einer Abruf- und Addieranweisung eine Nachricht heraus, welche die folgende Information enthält:
  • 1. Den Nachrichtentyp (in diesem Falle auf "Abruf-und- Addieren" eingestellt)
  • 2. Den Status der Nachricht, der unmittelbar vor der ursprünglichen Absendung der Nachricht auf "INITIAL" eingestellt wird.
  • 3. Die Adresse der zu aktualisierenden Variablen.
  • 4. Das Inkrement für die Aktualisierung.
  • Wenn die Nachricht den Ring durchläuft, fügt jeder Prozessor, der diese gemeinsam genutzte Variable aktualisieren möchte, sein Inkrement zum Inkrement in der Nachricht hinzu. Wenn die Nachricht den gemeinsam genutzten Speicher erreicht (angenommen, daß alle Prozessoren, welche die gemeinsam genutzte Variable inkrementieren möchten, die Gelegenheit hatten, ihre Inkremente der zirkulierenden Nachricht hinzuzufügen), reagiert der Speicher dahingehend, daß er die aktuellen Inhalte der gemeinsam genutzten Variablen liest, das Inkrement in der Nachricht durch den Wert der gemeinsam genutzten Variablen ersetzt und die gemeinsam genutzte Variable mit der Summe der gesammelten Inkremente (bei einem Abruf- und Addiervorgang) aktualisiert. Der Wert- der gemeinsam genutzten Variablen (bevor sie aktualisiert worden ist) zirkuliert auf dem Ring vom Speicher zum Absender der ursprünglichen Nachricht. Der Absender sendet dann eine neue Nachricht rund um den Ring (eine, die den Wert der gemeinsam genutzten Variablen vor der Aktualisierung enthält).
  • Wenn jeder Prozessor die neue Nachricht erhält, fügt er sein Inkrement zum Inkrement in der Nachricht hinzu und übergibt den Wert an den nächsten Prozessor. Das Ergebnis der zweiten Aktivität besteht darin, daß jeder Prozessor einen Wert empfängt, der zu beobachten gewesen wäre, wenn der Speicher N mal aktualisiert worden wäre und nicht nur einmal.
  • Es wird angenommen, daß die Netzwerkschnittstelle zwischen Eingabe und Ausgabe eine Verzögerung von 1 Bit einführt. Das Verhalten der Netzwerkschnittstelle jedes Prozessors während der Anfangsphase der Nachrichtenübertragung wird in Fig. 2 beschrieben. Jeder Knoten reagiert während dieser Phase wie folgt:
  • 1. Wenn der Knoten einen Abruf- und Addiervorgang anstehen hat (Entscheidungblock 100), wird er am Logikblock 130 aktiviert, und andernfalls wird er am Logikblock 110 deaktiviert. Sobald er deaktiviert wurde, geht der Knoten weiter zum Logikblock 120, wo er den Rest der Nachricht ignoriert, obwohl er die Sendung wiederholt.
  • 2. Während der Knoten beim Logikblock 130 aktiv ist, beobachtet der Knoten gegebenenfalls das Adressenfeld der Nachricht. Beim Logikblock 140 vergleicht der Knoten die Adresse in der Nachricht mit der Adresse für seinen anstehenden Abruf- und Addiervorgang. Wenn die beiden Adressen übereinstimmen, bleibt der Knoten beim Logikblock 150 aktiv, und andernfalls wird der Knoten beim Logikblock 110 deaktiviert, und am Logikblock 120 ignoriert er den Rest der Nachricht, obwohl er die Sehdung wiederholt.
  • 3. Am Logikblock 150 prüft der Knoten den Status der ankommenden Nachricht. Wenn der Status der Nachricht "INITIAL" ist, wird das Knotenverhalten an den Logikblöcken 500 und 510 in Fig. 3 beschrieben. Mit Bezug auf Fig. 3 ist zu erkennen, daß der Prozessor am Knoten sein Inkrement zum ankommenden Inkrement (Block 500) hinzufügt und das Ergebnis auf den Ausgabeanschluß (Block 510) legt. Dies kann synchron mit der Nachrichtensendung erfolgen, falls die Eingabewerte in binär codierter Form erscheinen, Bit mit der geringsten Wertigkeit zuerst. Der Prozessor führt in bitserieller Weise binäre Addition durch, indem er für jedes Eingabebit ein Ausgabebit erzeugt.
  • 4. Falls in Fig. 2 ein aktiver Knoten eine Nachricht entdeckt, die sich nicht im Anfangsstatus befindet, stellt er in Block 160 fest, ob der Status "FINAL" oder ein beliebiger anderer Status ist. Die unter diesen Bedingungen ablaufenden Aktionen erfolgen bei den Nachrichtenzirkulationen nach der ersten Zirkulation und werden hier nachstehend beschrieben.
  • Da die Nachricht aufeinanderfolgende Knoten durchläuft, kommt sie eventuell an den Knoten, der die gemeinsam genutzte Variable vorhält, und die Nachricht kann diesen Knoten mit der gemeinsam genutzten Variablen erreichen, ehe alle Prozessoren auf dem Ring die Gelegenheit hatten, ihre Inkremente dem Inkrement der Abrufund Addieranweisung hinzuzufügen. Es wird angenommen, daß der Speicher in einer Zeit von einem Bit nicht auf die Abruf- und Addieranweisung ansprechen kann.
  • Es gibt mehrere alternative Wege, wie sich das System verhalten kann, vorausgesetzt, daß die Abruf- und Addieranweisung ihren Vorgang nicht in einem einzigen Zyklus beenden kann. Das Folgende, das nur im Sinne einer Veranschaulichung dargestellt wird, ist eine Beschreibung einer derartigen Verfahrensweise.
  • Der Prozessor mit der gemeinsam genutzten Variablen startet einen Zugriff auf die gemeinsam genutzte Variable, wenn er erkennt, daß die Adresse in der Nachricht mit der Adresse der gemeinsam genutzten Variablen übereinstimmt. Die Nachricht auf dem Ring kann an diesem Punkt wahlweise modifiziert werden, um anzuzeigen, daß ein Zugriff gestartet worden ist, falls das System diese Information zu anderen Zwecken anfordert, oder um einen zuverlässigen Betrieb sicherzustellen.
  • Am Ende eines vollen Zyklus der Nachricht kommt sie am Sender an. Wenn der Sender den Empfang der Nachricht erkennt, verarbeitet er die Nachricht wie in Fig. 4 beschrieben. Die Aktivität, die beim Logikblock 200 beginnt, ist wie folgt:
  • 1. Am Logikblock 210 Verändern des Status der Nachricht von "INITIAL" zu "AKTUALISIEREN" (falls die ankommende Nachricht nicht "INITIAL" ist, wie es durch Logikblock 200 festgestellt wird, wird sich der Sender gemäß der Beschreibung verhalten, wie sie nachstehend mit Bezug auf Fig. 7 erläutert wird).
  • Am Logikblock 220 wiederholt der Sender die Nachricht auf der Verbindung, so daß die Nachricht eine zweite Runde im Netzwerk beginnt.
  • Nachrichtenwiederholung erfolgt mit einem einzigen Bit Verzögerung.
  • Wenn diese Nachricht den Prozessor mit dem gemeinsam genutzten Speicher erreicht, erledigt der Prozessor dort das Folgende, wie es durch Fig. 5 beschrieben wird.
  • 1. Im Logikblock 300 entfernt er das Inkrementfeld I der Nachricht.
  • 2. Im Logikblock 310 ersetzt er das Inkrementfeld durch den früheren Speicherinhalt. Dadurch wird die Abruf- und Addieranweisung in die Lage versetzt, den Wert der gemeinsam genutzten Variablen zurückzumelden, ehe er geändert wird.
  • 3. Am Logikblock 320 fügt der Prozessor das Inkrement I aus der Nachricht dem früheren Speicherinhalt hinzu, um einen neuen Wert der gemeinsam genutzten Variablen zu erhalten, und speichert diesem Wert im Speicher.
  • Der Ersatz des alten Inkrementes durch das neue Inkrement erfolgt gemäß einer Ausführungsform der Erfindung bitweise so, wie die Bits durch den Empfänger / Sender an einem gegebenen Knoten durchlaufen. Wenn es eine Möglichkeit gibt, daß der Speicherzugriff während der Zeit nicht abgeschlossen worden ist, in der die "AKTUALISIEREN"-Nachricht den gemeinsam genutzten Speicherknoten erreicht, sollte Vorkehrung getroffen werden, daß mehrfache Durchläufe erfolgen, damit die Verbindung aufrechterhalten wird, bis der Zugriff abgeschlossen ist. Ein geeigneter Weg, daß dies erfolgt, wird in Fig. 6 erläutert. Am Logikblock 600 startet der gemeinsam genutzte Speicherknoten die Aktualisierung der gemeinsam genutzten Variablen. Bis die Aktualisierung abgeschlossen ist, verbleibt der Knoten in einem Status, in dem Nachrichten auf dem Ring ohne Veränderung wiederholt werden. Dies wird im Logikblock 610 gezeigt. Der gemeinsam genutzte Speicherknoten schließt im Logikblock 620 die Aktualisierung der gemeinsam genutzten Variablen ab. Am Logikblock 630 erkennt er die ankommende Nachricht, die mit einem Status "AKTUALISIEREN" eintrifft. Am Logikblock 640 verändert der Knoten den Nachrichtenstatus in "AKTUALISIERUNG ERLEDIGT". Der Ring fährt fort, eine "AKTUALISIEREN"-Nachricht rundzuschicken, bis sie abgeschlossen ist oder bis die Nachricht durch Überschreiben angehalten wird, weil sie zu lange zirkuliert ist.
  • Wenn die Nachricht "AKTUALISIERUNG ERLEDIGT" den Sender erreicht, kann der Sender die Nachricht so verarbeiten, wie es durch die Logik in Fig. 7 dargestellt wird. Logikblock 700 prüft, um zu sehen, ob der Status "AKTUALISIERUNG ERLEDIGT" ist. Wenn dies nicht der Fall ist, wiederholt der Sender bei Logikblock 710 die Nachricht und ist andernfalls passiv. Wenn Logikblock 700 den Status "AKTUALISIERUNG ERLEDIGT" erkennt, verhält sich der Sender wie folgt:
  • 1. Bei Logikblock 720 Verändern des Status in "FINAL".
  • 2. Bei Logikblock 730 Hinzufügen seines lokalen Inkrementes zum Inkrement in der Nachricht.
  • 3. Bei Logikblock 740 Ersetzen der Nachricht auf der Verbindung durch das neue Inkrement.
  • Das alte Inkrement wird beobachtet und gespeichert, wenn es bitweise ankommt. Wie früher beschrieben, erfolgt bitserielle Addition.
  • Alle anderen aktiven Prozessoren reagieren auf eine Nachricht im "FINAL"-Status wie in Fig. 3 gezeigt, beginnend bei Logikblock 520.
  • 1. Bei Logikblock 520 das Nachrichteninkrement beobachten und speichern.
  • 2. Bei Logikblock 530 lokales Inkrement dem Nachrichteninkrement hinzufügen.
  • 3. Bei Logikblock 540 die erzeugte Summe an das Netzwerk ausgeben, und
  • 4. Bei Logikblock 550 den internen Status des Knotens in "INAKTIV" ändern.
  • Während des "FINAL"-Status erfordert die Nachricht eine Schleifeniteration, und sie kehrt zum Sender zurück, der die Schleife unterbricht und weitere Nachrichtenzirkulation verhindert. Der Sender folgt dann hinsichtlich des Auslösens eines neuen Sendevorganges dem Ringleitungsprotokoll.
  • Da aktive Prozessoren Nachrichten in anderen Zuständen als "INITIAL" oder "FINAL" beobachten können, zeigen Logikblöcke 560 der Fig. 3 an, daß bei derartigen Verfahren ein aktiver Prozessor die Nachricht auf dem Ring einfach wiederholt. Inaktive Prozessoren wiederholen Nachrichten immer.
  • Bei der hier vorstehend beschriebenen Realisierung zirkuliert die Nachricht mindestens dreimal. Der erste Durchlauf sammelt die Inkremente, der zweite Durchlauf erhält den früheren Wert der gemeinsam genutzten Variablen, und der dritte Durchlauf verteilt den früheren Wert der gemeinsam genutzten Variablen mit den hinzugefügten Inkrementen. Die Anzahl der Durchläufe kann auf eine kleinere Zahl vermindert werden, falls der Speicher auf die Anforderung schneller reagieren kann. Die Mindestanzahl der Durchläufe beträgt zwei, weil jeder aktive Prozessor Information an den Speicher senden muß und jeder aktive Prozessor Information vom Speicher empfangen muß. Ein aktiver Prozessor bedeutet, daß der unmittelbare Nachfolger des Speichers einen vollen Zyklus in Anspruch nimmt, um eine Nachricht an den Speicher zu senden, und ein aktiver Prozessor bedeutet, daß der unmittelbare Vorgänger des Speichers einen vollen Zyklus in Anspruch nimmt, um eine Nachricht vom Speicher zu empfangen. Eine Nachricht, die beide derartigen Prozessoren betrifft, nimmt daher zum Abschluß mindestens zwei volle Zyklen (weniger zwei Knoten) in Anspruch.
  • Was beschrieben wurde, ist die Realisierung einer Abruf- und Addieranweisung in einem kombinierten Schalter, wobei der Schalter als Zeichenfolgering angeordnet ist. Der Fachmann kann leicht einschätzen, daß Speicherzugriffe zu gemeinsam genutzten Variablen minimiert werden und das die Abruf- und Addieranweisung dazu benutzt werden kann, die Prozessoren zu synchronisieren.
  • Beispielsweise kann es wünschenswert sein, eine Gruppe von Prozessoren zu haben, von denen jeder mit der Fertigstellung einer Aufgabe befaßt ist, ihnen ein Haltemuster einzugeben und zu warten, bis ein "Grenzwert" überschritten wird, ehe sie auf synchrone Weise mit ihren Verarbeitungsaufgaben fortfahren. Wenn eine gemeinsam genutzte Grenzwert-Variable am Anfang auf null gesetzt würde, dann könnte die Abruf- und Addieranweisung einfach dazu verwendet werden, die gemeinsam genutzte Variable über Addition eines Inkrementes (angenommen 1) zu aktualisieren, wenn jeder Prozessor seine Anfangsaufgabe abgeschlossen hat, bis ein vorgegebener Schwellenwert erreicht wird. Die Gruppe von Prozessoren könnte dann von ihren Haltemuster befreit werden und auf synchrone Weise fortfahren.
  • Abschließend faßt Fig. 8 die Arbeitsweise des hier beschriebenen kombinierten Schalters zusammen, indem ein spezielles Beispiel benutzt wird. Es werden drei Prozessoren gezeigt, 801, 802 und 803. Der gemeinsam genutzte Speicher 804 ist dargestellt, wie er bei 805 mit dem Ring verbunden ist. Der Speicher wird weiterhin so gezeigt, daß er einen Anfangswert von 4 hat.
  • In Fig. 8 wird Prozessor 801 als Sender dargestellt. Es wird gezeigt, daß zum Zwecke der Erläuterung Inkremente von 2, 6 und 3 dem Wert der von den Prozessoren 801, 802 beziehungsweise 803 gemeinsam genutzten Variablen hinzugefügt werden.
  • Unterhalb des Ringdiagramms in Fig. 8 befindet sich eine Tabelle, die zeitorientiert ist und die verschiedenen Zustände der 3 Prozessoren über der Zeit zusammen mit dem Operanden und dem Wert der gemeinsam genutzten Variablen über der Zeit zeigt. Es sollte angemerkt werden, daß der Ring in der Tat als ein kombinierter Schalter mit nur einem erforderlichen Speicherzugriff funktioniert.
  • Die vorstehende Beschreibung einer bevorzugten Ausführungsform der neuartigen Verfahren und Vorrichtung zur Erledigung der Aufgabe der Erfindung ist zu Erläuterungs- und Beschreibungszwecken vorgestellt worden. Es besteht nicht die Absicht, dies erschöpfend getan zu haben oder die Erfindung auf die genaue beschriebene Form einzugrenzen, und augenscheinlich sind angesichts der obigen Erkenntnisse viele Modifikationen und Variationen möglich.
  • Die Ausführungsform und hier erläuterten Beispiele wurden vorgestellt, um die Grundlagen der vorliegenden Erfindung und ihre praktische Anwendung am besten zu erklären, um damit andere Fachleute in die Lage zu versetzen, die vorliegende Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Variationen am besten zu nutzen, wenn sie für den speziellen betrachteten Einsatz geeignet sind.

Claims (10)

1. Verfahren zur Ausführung eines kombinierten Schalters (-- eigentlich eines Kombinierschalters, im Text wird aber kombinierter Schalter verwendet---) für eine Vielzahl von parallelen Prozessoren (10),
wobei das Verfahren die Schritte umfaßt:
- Konfigurieren der Vielzahl von parallelen Prozessoren (10) in einem ringförmigen Netzwerk, indem jeder der Vielzahl von Prozessoren (10) mit einem Vorgänger- und einem Nachfolger-Prozessor verbunden wird; und
- in dem Netzwerk Ausführen einer Synchronisieranweisung, welche die Vielzahl von Prozessoren (10) während des Prozessorbetriebes synchronisiert, damit serieller Prozessorbetrieb vermieden wird, indem die Synchronisieranweisung von einem der Vielzahl von Prozessoren (10) zum Umlauf zu den anderen Prozessoren in dem ringförmigen Netzwerk abgesandt wird, wobei die Synchronisieranweisung dahingehend arbeitet, daß eine Vielzahl von gleichlaufenden Prozessoranforderungen zum Aktualisieren einer gemeinsamen Variablen (SHARED VARIABLE) serialisiert wird.
2. Verfahren, wie in Anspruch 1 ausgeführt, wobei das ringförmige Netzwerk ein Zeichenfolgenetzwerk ist.
3. Verfahren, wie in Anspruch 1 oder 2 ausgeführt, wobei die Synchronisieranweisung eine Abhol-und-Hinzufüge-Anweisung ist.
4. Verfahren, wie es in einem der Ansprüche 1 bis 3 ausgeführt ist, wobei der Schritt des Ausführens einer Synchronsieranweisung weiterhin die Schritte umfaßt:
- Überwachen des Wertes der von der Vielzahl der Prozessoren (10), die synchronisiert werden sollen, gemeinsam genutzten Variablen (SHARED VARIABLE), um zu bestimmen, wenn eine vorgegebene Synchronisationsschwellenbedingung erreicht wird; und
- Aktualisieren der gemeinsamen Variablen (SHARED VARIABLE) immer dann, wenn ein gegebener Prozessor aus der Vielzahl der Prozessoren (10) eine vorgegebene Task abschließt.
5. Verfahren zum Ausführen eines kombinierten Schalters, wie er in einem der Ansprüche 1 bis 4 vorgestellt wird, für eine Gruppe von n als ringförmiges Netzwerk konfigurierten Prozessoren (801, 802, 803), damit Zugriffe zu einem Speicher (804) vermindert werden, der eine Variable enthält (SHARED VARIABLE), die von den n Prozessoren (801, 802, 803) gemeinsam genutzt wird, und damit die n Prozessoren (801, 802, 803) synchronisiert werden,
wobei das Verfahren die Schritte umfaßt:
- innerhalb der Zeit, die das Durchlaufen einer von einem der n Prozessoren (801, 802, 803) abgesandten Nachricht rund um den Ring in Anspruch nimmt, Sammeln und Kombinieren jedes mit einer auf dem Ring ausgeführten Abhol-und-Hinzufüge-Anweisung verbundenen Inkrements;
- Ermitteln und Verteilen des Wertes der Variablen (SHARED VARIABLE) innerhalb der Zeit, die es in Anspruch nimmt, eine zweite Nachricht, die einer ersten Nachricht folgt, rund um den Ring durchlaufen zu lassen;
- Aktualisieren der Variablen (SHARED VARIABLE) mit dem Ergebnis des Kombinierens der Inkremente (OPERAND); und
- - innerhalb der Zeit, die das Durchlaufen einer dritten, auf die zweite Nachricht folgenden Nachricht durch den Ring in Anspruch nimmt, Verteilen des Wertes der Variablen (SHARED VARIABLE) vor seiner Aktualisierung mit dazu hinzugefügten Inkrementen (OPERAND), an jeden der Prozessoren (801, 802, 803), die eine Abhol-und- Hinzufüge-Anweisung ausführen, wodurch den Prozessoren (801, 802, 803) jeweils ein Ergebnis zurückgeschickt wird, das zu beobachten gewesen wäre, wenn ein serielles Bestellen von Aktualisierungen der Variablen (SHARED VARIABLE) erfolgt wäre.
6. Verfahren, wie in Anspruch 5 vorgestellt, wobei
der Schritt des Sammelns und Kombinierens innerhalb der Zeit durchgeführt wird, die eine Nachricht dafür braucht, einmal rund um den Ring durchzulaufen;
der Schritt des Ermittelns und Verteilens innerhalb weniger Zeit durchgeführt wird, als eine Nachricht für das einmalige Durchlaufen des Ringes braucht; und
der Schritt des Verteilens innerhalb der Zeit durchgeführt wird, die eine Nachricht dafür braucht, einmal rund um den Ring durchzulaufen.
7. Kombinierter Schalter zum Kombinieren von Datenaktualisierungsvorgängen einer Vielzahl von parallelen Prozessoren (801, 802, 803),
wobei der kombinierte Schalter umfaßt:
- die Vielzahl von parallelen Prozessoren (801, 802, 803), von denen jeder als Verarbeitungsknoten in einem ringförmigen Netzwerk konfiguriert ist; und
- Synchronisiermittel, die jeden der Verarbeitungsknoten umfassen, zum Synchronisieren der Vielzahl von parallelen Prozessoren (801, 802, 803) in dem ringförmigen Netzwerk, indem eine Synchronisieranweisung ausgeführt wird und die Synchronisieranweisung von einem aus der Vielzahl der Prozessoren (10) zum Durchlauf zu den anderen Prozessoren in dem ringförmigen Netzwerk abgesandt wird, wobei die Synchronisieranweisung so arbeitet; daß sie eine Vielzahl von gleichlaufenden Prozessoranforderungen zum Aktualisieren einer gemeinsamen Variablen (SHARED VARIABLE) serialisiert.
8. Kombinierter Schalter, wie er in Anspruch 7 vorgestellt wird, weiterhin umfassend
- mindestens ein Speicherelement (804), das mit dem Ring (805) gekoppelt ist, um Variable (SHARED VARIABLE) zu speichern, die von der Vielzahl von parallelen Prozessoren (801, 802, 803) gemeinsam genutzt werden.
9. Kombinierter Schalter, wie er in Anspruch 7 vorgestellt wird, wobei
das Synchronisiermittel weiterhin ein gemeinsam genutztes Speicherelement (804) umfaßt, das in mindestens einem der Verarbeitungsknoten vorgesehen ist, um Variable (SHARED VARIABLE) zu speichern, die von der Vielzahl der parallelen Prozessoren (801, 802, 803) gemeinsam genutzt werden.
10. Die Verwendung des Verfahrens, wie es in einem der Ansprüche 1 bis 6 vorgestellt wird, in einem kombinierten Schalter zum Kombinieren von Datenaktualisierungsvorgängen einer Vielzahl von parallelen Prozessoren (10).
DE68925263T 1988-11-02 1989-07-07 Verfahren zur Ausführung eines kombinierten Schalters zur Unterstützung von Parallelverarbeitung Expired - Fee Related DE68925263T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/266,424 US5163149A (en) 1988-11-02 1988-11-02 Combining switch for reducing accesses to memory and for synchronizing parallel processes

Publications (2)

Publication Number Publication Date
DE68925263D1 DE68925263D1 (de) 1996-02-08
DE68925263T2 true DE68925263T2 (de) 1996-07-11

Family

ID=23014537

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68925263T Expired - Fee Related DE68925263T2 (de) 1988-11-02 1989-07-07 Verfahren zur Ausführung eines kombinierten Schalters zur Unterstützung von Parallelverarbeitung

Country Status (4)

Country Link
US (1) US5163149A (de)
EP (1) EP0366865B1 (de)
JP (1) JPH02137438A (de)
DE (1) DE68925263T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526691B2 (ja) * 1990-03-02 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラの制御方法
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
DE69229338T2 (de) * 1992-06-30 1999-12-16 Discovision Associates, Irvine Datenpipelinesystem
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US5519877A (en) * 1993-01-12 1996-05-21 Matsushita Electric Industrial Co., Ltd. Apparatus for synchronizing parallel processing among a plurality of processors
US5604863A (en) * 1993-11-01 1997-02-18 International Business Machines Corporation Method for coordinating executing programs in a data processing system
US5495589A (en) * 1993-12-23 1996-02-27 Unisys Corporation Architecture for smart control of bi-directional transfer of data
US5600822A (en) * 1994-04-05 1997-02-04 International Business Machines Corporation Resource allocation synchronization in a parallel processing system
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6460120B1 (en) 1999-08-27 2002-10-01 International Business Machines Corporation Network processor, memory organization and methods
US6404752B1 (en) 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US7734868B2 (en) * 2003-12-02 2010-06-08 Nvidia Corporation Universal RAID class driver
JP4673299B2 (ja) * 2004-04-28 2011-04-20 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム
GB202112936D0 (en) * 2021-09-10 2021-10-27 Graphcore Ltd A network computer with external memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2934379A1 (de) * 1979-08-24 1981-03-26 Siemens AG, 1000 Berlin und 8000 München Zeitlagenvielfach fuer ein zeitmultiplexsystem zur durchkopplung digitaler, insbesondere deltamodulierter, nachrichtensignale
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4404557A (en) * 1982-03-05 1983-09-13 Burroughs Corporation Timed token ring with multiple priorities
FR2527401A1 (fr) * 1982-05-18 1983-11-25 Philips Ind Commerciale Procede et dispositif d'allocation deterministe explicite du jeton dans un reseau local distribue de transmission avec priorites
US4495617A (en) * 1982-09-09 1985-01-22 A.B. Dick Company Signal generation and synchronizing circuit for a decentralized ring network
FR2533789B1 (fr) * 1982-09-24 1987-10-23 France Etat Reseau local hybride de communication en modes circuit et paquet a boucle portant un multiplex temporel
EP0109964B1 (de) * 1982-11-26 1986-04-23 International Business Machines Corporation Synchronisierung in einem Nachrichtennetz aus miteinander verbundenen Ringen
US4677614A (en) * 1983-02-15 1987-06-30 Emc Controls, Inc. Data communication system and method and communication controller and method therefor, having a data/clock synchronizer and method
JPS59188256A (ja) * 1983-04-11 1984-10-25 Hitachi Ltd ル−プ伝送システムの伝送方法
US4530091A (en) * 1983-07-08 1985-07-16 At&T Bell Laboratories Synchronization of real-time clocks in a packet switching system
US4536876A (en) * 1984-02-10 1985-08-20 Prime Computer, Inc. Self initializing phase locked loop ring communications system
US4663748A (en) * 1984-04-12 1987-05-05 Unisearch Limited Local area network
US4709364A (en) * 1984-07-25 1987-11-24 Sumitomo Electric Industries, Ltd. Network priority determining method
US4704680A (en) * 1984-08-15 1987-11-03 Tektronix, Inc. Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle
CA1261021A (en) * 1985-03-12 1989-09-26 Harutada Ohya Multiplex transmission system
JPS61214694A (ja) * 1985-03-18 1986-09-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ伝送のスイッチング装置
JP2642332B2 (ja) * 1985-04-15 1997-08-20 株式会社日立製作所 優先レベル更新制御方法
US4754395A (en) * 1985-05-06 1988-06-28 Computer X, Inc. Network interface module with minimized data paths
GB2175774B (en) * 1985-05-24 1988-09-01 Stc Plc Intelligence transmission system of the local area network type
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US4747130A (en) * 1985-12-17 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Resource allocation in distributed control systems
SE452231B (sv) * 1986-03-07 1987-11-16 Philips Norden Ab Forfarande for synkronisering av klockor ingaende i ett lokalt netverk av busstyp
US4746920A (en) * 1986-03-28 1988-05-24 Tandem Computers Incorporated Method and apparatus for clock management
GB8618424D0 (en) * 1986-07-29 1986-09-03 Leslie I M Data rate channel for digital network
KR920001576B1 (ko) * 1987-09-09 1992-02-18 가부시끼가이샤 도시바 토큰패싱 버스 방식을 사용한 네트워크 시스템
US4833468A (en) * 1987-10-14 1989-05-23 Unisys Corporation Layered network
US4989131A (en) * 1988-07-26 1991-01-29 International Business Machines Corporation Technique for parallel synchronization
US4926446A (en) * 1988-11-25 1990-05-15 Alberta Telecommunications Research Centre Method and apparatus for precision time distribution in telecommunication networks

Also Published As

Publication number Publication date
US5163149A (en) 1992-11-10
EP0366865A3 (de) 1992-06-10
EP0366865A2 (de) 1990-05-09
EP0366865B1 (de) 1995-12-27
DE68925263D1 (de) 1996-02-08
JPH02137438A (ja) 1990-05-25

Similar Documents

Publication Publication Date Title
DE68925263T2 (de) Verfahren zur Ausführung eines kombinierten Schalters zur Unterstützung von Parallelverarbeitung
DE69413104T2 (de) Anordnung und Verfahren zur Überwachung von Tafeln von einfachen Netzverwaltungsprotokollen
DE69315378T2 (de) Einen dynamischen Nachrichtenservice verwendendes objektorientiertes Softwaresystem, besonders für eine Kontroll-/Steuer-Vorrichtung für eine redundante Architektur
DE3787886T2 (de) Parallelprozessor mit binärer baumstruktur.
DE3751205T2 (de) Paralleles verarbeitungssystem und verfahren zu dessen anwendung.
DE69116953T2 (de) Methode und Vorrichtung zur dynamischen Ermittlung und Wegfindung für nichtgleichförmigen Verkehr, in parallelen, gepufferten, mehrstufigen Verbindungsnetzwerken
DE3856015T2 (de) Berechnungseinrichtung für Parallelprozessoren
DE69322549T2 (de) Verteilte Transaktionsverarbeitung mit einem Zwei-Phasen-Bindungsprotokoll mit erwarteter Bindung ohne Aufzeichnungspflicht
DE60030397T2 (de) Belastungsverteilung in einem Netzwerk
DE4023527C2 (de) Brücke zur Netzwerkverbindung
DE69022709T2 (de) Synchronisationsbefehl für Mehrprozessornetz.
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE3232675A1 (de) Verfahren zur steuerung des datenzugriffs in einem rechner und daten-kontrollsystem zur durchfuehrung des verfahrens
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE69106384T2 (de) Skalierbares parallel-vektorrechnersystem.
DE3631333A1 (de) Anordnung zur programmierbaren signalverarbeitung in realzeit in mehreren aufloesungen
DE69630388T2 (de) Speicherstruktur
DE2911677A1 (de) Verfahren und schaltungsanordnung zum ueberwachen und verhindern von blockierungen in datenverarbeitungssystemen mit mehreren prozessoren
EP0461724A2 (de) Multirechnersystem
DE2758151A1 (de) Einrichtung zum sortieren von datensaetzen
DE69210466T2 (de) Verfahren und Vorrichtung zur Verbindung von lokalen Netzwerken mit Weitbereichsnetzwerken
DE69905394T2 (de) Datenverarbeitungs- und such-prozessor-schaltkreis
DE2165730A1 (de) Rechensystem
DE3852204T2 (de) Datenübertragungsvorrichtung und Datenübertragungsverfahren zur Anwendung in einer Datenverarbeitungsanordnung.
DE3115454A1 (de) Mehrprozessorsystem mit gemeinsamem daten/adressbus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee