-
Die
vorliegende Erfindung betrifft eine rekonfigurierbare Mehrprozessorarchitektur,
die besonders geeignet ist für
die digitale Verarbeitung von Radarsignalen, jedoch nicht darauf
beschränkt
ist. Die Erfindung ist besonders geeignet für alle Anwendungen, bei denen
große Datenmengen
verarbeitet werden müssen
und bei denen die Algorithmen für
die Verarbeitung in eine Kaskade bestimmter Funktionen unterteilt
werden können.
-
Für Mehrprozessorarchitekturen
sind vollvernetzte Strukturen bekannt, bei denen n Prozessoren oder CPUs
(Zentraleinheiten) mittels einer Matrix von n × n Verbindungselementen miteinander
verbunden sind, so dass alle Prozessoren direkt miteinander kommunizieren
können.
-
Bei
hohem Rechenleistungsbedarf und gleichzeitig beschränktem Raum
und beschränkter
Energiekapazität
ist die Direktverbindungsarchitektur von Nachteil, weil die Größe der Schaltmatrix
mit der Anzahl der Prozessoren sehr rasch zunimmt und die Gesamtgröße sowie
die Steuerung des ganzen Prozessorsystems den Rahmen sprengen, insbesondere
in einer Anwendungsumgebung wie beispielsweise der Avionik.
-
Eine
bekannte Alternativlösung
besteht in der gemeinsamen Speichernutzung, bei der mehrere Prozessoren
Verarbeitungsdaten lesen und schreiben können. Die konstruktive Komplexität dieser
Architektur ist geringer als bei der Vollvernetzungslösung, jedoch
ist ein gemeinsam genutzter Speicher selbst bei einer geringen Anzahl
von Prozessoren ein kritischer Engpass für den Speicherzugriff.
-
Eine
weitere bekannte Architektur arbeitet nach Art des Telefonnetzes,
bei dem alle Knoten über
gemeinsame Verbindungen miteinander sprechen können. Alle Rechenelemente sind
mit einer hierarchisch organisierten Schaltmatrix verbunden. Mehrere
Rechenelemente sind mit demselben Verbindungselement verbunden,
und jedes Verbindungselement ist mit einem anderen Verbindungselement
einer höheren
Stufe verbunden, mit dem mehrere Verbindungselemente so ver bunden
sind, dass eine hierarchische Struktur von Verbindungselementen
gebildet wird, an deren Spitze die Datenein- und -ausgabegeräte miteinander
verschaltet sind.
-
D1,
US-A-5014189 , offenbart
eine Prozessoranordnung, bei der die Prozessoren selektiv in Reihe oder
parallel geschaltet sind. Außerdem
weist die Prozessoranordnung einen Eingangs- und einen Ausgangsbus
mit wenigstens einem zwischengeschalteten Prozessor auf. Es sind
Steuermittel vorgesehen, um die Schaltelemente so zu steuern, dass
der erste Prozessor selektiv mit dem n-ten Prozessor verbunden werden kann.
-
D2,
US 2001/054124 , offenbart
ein Parallelprozessorsystem, das ein Paar Parallelbusse, Pipelinebusse
und mehrere Prozessorknoten aufweist, die die Aufgabe haben, auf
Anforderung Rechenoperationen auszuführen und Daten zu übertragen.
Außerdem
enthält
das System eine Schaltsteuerungseinheit, die den Verbindungsmodus
von Schaltergruppen steuert und die Prozessorknoten in Reihe oder
parallel schaltet.
-
Eine
hierarchische Verbindung ist zweckmäßig, wenn die Anzahl der laufenden
Kommunikationen bezogen auf die Anzahl der Prozessoren sehr klein
ist. Je größer der
Abstand zwischen einem Prozessor und den Eingabe/Ausgabe-Geräten ist,
umso höher
ist der entsprechende Verbindungslevel, so dass die Signalausbreitungszeiten
relativ lang und schwer vorhersagbar sind. Diese Lösung ist
problematisch bei Echtzeitanwendungen, beispielsweise bei der Verarbeitung
von Radardaten, die auf einem Bildschirm darzustellen sind.
-
Bei
sehr starkem Datenfluß und/oder
wenn viele Prozessoren Verbindung anfordern, sind außerdem die
Verbindungselemente in der obersten Hierarchiestufe überlastet,
und das System kann versagen. Weil Kommunikationsanforderungen nicht
exakt vorhergesagt werden können,
da sie von den Daten und ihrer Verarbeitung abhängig sind, sind Verbindungsversuche
zufallsgebunden, und es kann immer wieder zu Ausfällen kommen,
die nur begrenzt gesteuert und verhindert werden können.
-
Deshalb
könnte
man an eine Struktur mit vorgegebenen Verbindungen zwischen den
verschiedenen Rechenelementen denken, doch wäre diese Lösung ganz unflexibel und würde in der
Praxis die Einfügung neuer
Elemente verhindern, weil eine solche Einfügung eine vollständige Umstrukturierung
des Kommunikationsnetzes nach sich ziehen würde.
-
Zusammenfassung der Erfindung
-
Es
ist das Ziel der vorliegenden Erfindung, die vorgenannten Nachteile
zu beseitigen, indem eine Mehrprozessorarchitektur geschaffen wird,
die flexibel ist und große
Datenmengen effizient verarbeiten kann.
-
Im
Hinblick auf diese Zielsetzung ist es eine Aufgabe der Erfindung,
die Möglichkeit
zu schaffen, dass die Rechenleistung des Systems in Abhängigkeit
von der jeweiligen Anwendung verändert
werden kann, indem die gewählte
Anzahl von Rechenelementen genutzt wird und ihre wechselseitigen
Verbindungen so konfiguriert werden, dass die Verbindungselemente
und die Speicher des Systems nicht überlastet werden.
-
Eine
weitere Aufgabe der Erfindung ist es, die Rechenleistung auf mehrere
Prozessoren zu verteilen, während
das System in Betrieb ist, indem ausschließlich über die Betriebssoftware eingegriffen
wird.
-
Eine
weitere Aufgabe ist es, eine rekonfigurierbare Architektur bereitzustellen,
die vom speziellen Rechenelement oder von der speziellen Hardwareumsetzung
der Funktionsblöcke
ebenso wie von den Komponenten, die das Kommunikationssystem bilden,
unabhängig
ist.
-
Eine
weitere Aufgabe ist es, die Prozessorelemente von der Datenverkehrsverwaltung
freizustellen, und die Daten extern nichtintrusiv zu analysieren.
-
Noch
eine Aufgabe ist es, eine Architektur zu schaffen, die nach dem
Baukastenprinzip aufgebaut, wirtschaftlich und einfach ausführbar ist.
-
Die
Zielsetzung sowie die genannten und weitere Aufgaben, die im folgenden
klarer erkennbar werden, werden durch das Mehrprozessorsystem zur
Zuordnung der Datenverarbeitungsressourcen bzw. Datenverarbeitungskapazitäten gemäß Anspruch
1 erreicht.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung gehen aus der Beschreibung
eines bevorzugten, jedoch nicht einzig möglichen Ausführungsbeispiels
der Erfindung hervor und sind in den beiliegenden Abbildungsbeispielen
dargestellt, die folgendes zeigen:
-
1:
ein Blockschaltbild eines Ausführungsbeispiels
der Erfindung;
-
2a und 2b:
schematische Darstellungen der zwei Verbindungskonfigurationen der
Datenkommunikationsbusse in einem Knoten der erfindungsgemäßen Architektur;
-
3a und 3b:
eine schematische Darstellung der vorzunehmenden Kapazitätszuordnung
bzw. architektonischen Gestaltung der Ausführung;
-
4:
ein detailliertes Blockschaltbild der Verbindungen der Videokanäle in einem
Knoten der erfindungsgemäßen Architektur;
-
5:
ein detailliertes Blockschaltbild der Verbindungen des Netzkanals
in einem Knoten der erfindungsgemäßen Architektur;
-
6:
ein Blockschaltbild einer speziellen Funktionskaskade bei der erfindungsgemäßen Architektur.
-
Gemäß 1 und 2 umfasst die Architektur 10 gemäß einem
bevorzugten Ausführungsbeispiel
der Erfindung eine Reihe von Verarbeitungs- oder Rechenknoten 11,
die über
einen Datenkommunikationsbus 14 miteinander verbunden sind,
der sich seinerseits aus einem Eingangsbus 24 und einem
Ausgangsbus 25 zusammensetzt, die voneinander unabhängig sind.
-
Die
Architektur gemäß 1 wird
vorzugsweise auf einer Hauptplatine ausgeführt, bei der jeder Knoten eine
physische Adresse (Schlitzadresse), die durch geeignete Anschlüsse auf
der Platine festgelegt ist, und eine Unteradresse, die ihn auf der
Platine kennzeichnet, wenn diese mehrere Knoten aufweist, hat. Es
ist möglich,
mittels Software jedem Knoten eine logische Adresse zuzuordnen.
Das Kommunikationsnetz ist aus unabhängigen Kanälen zusammengesetzt, die mit
einer Standardschnittstelle versehen sind.
-
Jeder
Knoten besitzt eine Verarbeitungseinheit 12 (in den Abbildungen
als CPU bezeichnet) zur Verarbeitung von Daten und zum Austausch
von Daten mit anderen Knoten über
den Kommunikationsbus 14 sowie eine Knotensteuerungseinheit 13,
die mit der Verarbeitungseinheit 12 verbunden ist und Befehle
von der Verarbeitungseinheit 12 empfängt und an diese sendet, um
hauptsächlich
die Kommunikation mit den anderen Knoten und den Zugang zu den Kommunikationsbussen
zu regeln. Beim bevorzugten Ausführungsbeispiel
der Erfindung enthalten die Verarbeitungseinheiten 12 einen
Digitalsignalprozessor oder DSP 27, und sind die über die
Kommunikationsbusse 14 übertragenen
Daten Videodaten. Deshalb werden die Kommunikationsbusse 14 im
folgenden auch als „Videobusse" bezeichnet.
-
Grundsätzlich kann
eine Verarbeitungseinheit bei der vorliegenden Erfindung jedes beliebige
Element sein, das eine bestimmte Funktion ausführen kann, beispielsweise eine
Schnittstelle zum Übertragen
von Daten aus dem Netz oder ins Netz, eine Videoanzeigeeinheit,
die der Bedienperson Bilder oder Symbole anzeigt, A/D- oder D/A-Wandler
(bereits in 1 gezeigt) usw..
-
Die
Datenübertragung
wird von programmierbaren FPGA-Komponenten gesteuert, mittels derer
die Knotensteuerungseinheiten und die Schalter physisch ausgeführt sind.
-
Der
spezielle Knoten 17 weist wahlweise Analog/Digital-(A/D-)Wandler 19 oder
Digital/Analog-Wandler (D/A-Wandler) 19 für den Zugang
zu analogen Sendern oder Empfängern,
beispielsweise zu einer Radarantenne (nicht eingezeichnet), auf.
Wahlweise kann ein anderer Knoten 11a des Netzes mit Standard-Eingabe/Ausgabe-Schnittstellen
(I/O-Schnittstellen) versehen sein.
-
Schließlich weist
die Architektur 10 noch einen speziellen Ressourcenzuordnungsknoten 18 zur
Gesamtnetzverwaltung auf, der hauptsächlich zur Aktualisierung der
Betriebssoftware, zur Weitergabe von Befehlen an die verschiedenen
Knoten und zur Konfigurierung des Netzes verwendet wird. Der Knoten 18 verwendet
einen speziellen Kommunikationsbus, der im folgenden als „Netzbus" 15 bezeichnet
wird und in einer Schleife alle Verarbeitungsknoten des Systems
miteinander verbindet.
-
Die
Architektur wird vorzugsweise durch einen zusätzlichen Bus 16 vervollständigt, der
hier als „Hilfsbus" bezeichnet wird
und alle Verarbeitungsknoten verbindet; er ist von den anderen Kommunikationsbussen unabhängig. Wie
noch beschrieben wird, wird der Hilfsbus 16 für die nichtintrusive
Gewinnung von Daten, die am Videobus anstehen und von einem der
Netzknoten kommen, verwendet.
-
Um
die Anzahl der Anschlussstifte der Steckverbinder und Übersprechen
zu verringern, erfolgt die Hardwareumsetzung der Busse 14 bis 16 in
Reihenschaltung.
-
2a und 2b zeigen
schematisch den Lösungsgedanken,
der die vorliegende Erfindung kennzeichnet. Der Eingangsbus 24 und
der Ausgangsbus 25 haben intern Zugang zu jedem der Verarbeitungsknoten 11,
und zwar über
den Eingang 24a bzw. 25a, und einen Ausgang vom
Knoten über
den Ausgang 24b bzw. 25b.
-
Der
DSP 27 des Knotens 11 ist in Eingangsschaltung
mit dem Eingangsbus 24, genauer gesagt, mit dem Abschnitt 24a des
Busses 24 verbunden, so dass die am Abschnitt 24a anstehenden
Daten vom DSP zu verarbeitende Daten sind. Außerdem ist der DSP in Ausgangsschaltung
mit dem Videobus 25 verbunden, um über den Videobus die durch
Verarbeitung im DSP 27 erzeugten Daten zu senden und sie
etwaigen bereits am Bus 25a anstehenden Daten hinzuzufügen.
-
Der
Knoten 11 ist dadurch gekennzeichnet, dass er Schaltmittel
enthält,
die dem Eingangsbus 24 und dem Ausgangsbus 25 zugeordnet
sind, um je nach der auszuführenden
Funktion den Ausgangsbus auf den Eingangsbus zu schalten. Insbesondere
weist jeder der Knoten 11 vorzugsweise eine Verbindungsleitung (crossing
line) 21 und die zwei Schalter 22 und 23 auf,
die mit dem Bus 24 bzw. dem Bus 25 verbunden sind und
dazu dienen, von der Parallelschaltung, in der der Eingang 24a mit
dem Ausgang 24b des Videobusses 24 und der Eingang 25a mit
dem Ausgang 25b des Videobusses 25 verbunden ist,
auf Reihenschaltung umzuschalten, in der der Ausgang 24b vom
Eingang 24a getrennt und mit der Verbindungsleitung 21 verbunden ist
und der Eingang 25a vom Ausgang 25b getrennt und
ebenfalls mit der Verbindungsleitung 21 verbunden ist.
-
Durch
gleichzeitige Betätigung
der Schalter 22 und 23 kann der Ausgangsbus 25 auf
den Eingangsbus 24 geschaltet werden, so dass die am Ausgangsbus
des Knotens 11 anstehenden Daten und die vom DSP 27 verarbeiteten
Daten am Ausgang 24b übertragen
werden und deshalb als Eingabe am nachfolgenden Knoten anstehen.
Wenn die Schalter auf Reihenschaltung geschaltet sind, empfängt der
DSP-Kern des Knotens, der auf den fraglichen Knoten 11 (auch
als „lokaler
Knoten" bezeichnet)
folgt, als Eingabe die Ergebnisse, die vom DSP-Kern 27 des lokalen Knotens 11 und
von den anderen, stromaufwärts
des Knotens 11 liegenden Knoten, die derselben Funktion
zugeordnet sind, erzeugt wurden, was aus dem Folgenden noch näher hervorgeht.
-
Stehen
die Schalter dagegen auf Parallelschaltung, werden die an den Eingängen 24a und 25a empfangenen
Datenpakete an den beiden Ausgängen 24b und 25b wiederholt,
während
die Daten, die den Ergebnissen der lokalen Verarbeitung durch den
DSP 27 entsprechen, ebenfalls auf dem Ausgang 25b übertragen werden.
Der DSP-Kern des auf den Knoten 11 folgenden Knotens empfängt somit
als Eingabe dieselben Daten, die auch vom lokalen DSP-Kern empfangen
wurden, und die Ergebnisse des nachfolgenden Knotens können ebenfalls über denselben
Kanal des lokalen Knotens 11 geschickt werden. Folglich
sind die zwei Knoten parallelgeschaltet.
-
Durch
Betätigung
der Schalter ist es somit möglich,
die Rechenelemente auf die verschiedenen auszuführenden Funktionen neu zu verteilen,
während
die physischen Verbindungen zwischen den verschiedenen Knoten unverändert bleiben.
Das ist insbesondere ersichtlich aus der physischen Ausführung der
in 3a gezeigten Funktion, die sich aus den drei Funktionen
A, B und C zusammensetzt, die kaskadenartig konfiguriert sind. Zwei
Rechenknoten 31 und 32 sind der Funktion A zugeordnet,
ein einziger Knoten 33 ist der Funktion B zugeordnet, und
fünf Knoten,
von denen nur der erste Knoten 34 eingezeichnet ist, sind
der Funktion C zugeordnet.
-
3b zeigt
die Ausführung
der Schaltung für
die Funktion von 3a in der erfindungsgemäßen Architektur.
Die Knoten 31 und 32 für die Funktion A werden parallelgeschaltet,
indem die Schalter des Knotens 31 in den Parallelzustand
gebracht werden. Die Kaskadenverbindung zwischen der Funktion A
und der Funktion B und zwischen der Funktion B und der Funktion
C dagegen wird durch Reihenschaltung der Schalter des Knotens 32 bzw.
des Knotens 33 hergestellt. Die Knoten für die Funktion
C schließlich
haben ihre jeweiligen Schalter parallelgeschaltet. Die Ergebnisse
der Operation, die durch die in 3a dargestellte
Funktion ausgeführt
wird, werden im Ausgabekanal des letzten Knotens der Funktion C
bereitgehalten.
-
4 zeigt
ein Beispiel für
die Ausführung
eines Knotens der erfindungsgemäßen Architektur.
Die Videobusse 24a und 25a sowie ein Hilfsbus 26a,
die in Eingabeschaltung zum Knoten 11 stehen, sind jeweils mit
Reihen/Parallel-Schaltungskonvertern 36 verbunden,
um die seriellen Daten aus den Kanälen 24a, 25a und 26a in
parallele 32-Bit-Daten für
die Kanäle 44a bzw. 45a bzw. 46a zu
konvertieren.
-
Die
Verarbeitungseinheit (in 4 nicht eingezeichnet) ist über einen
lokalen Bus 50 und einen Eingabepufferspeicher 48 mit
dem Parallelkanal 44a verbunden. Außerdem ist der Kanal 44a mit
der Knotensteuerungseinheit 13 und mit einem ersten Multiplexer 42 mit 64 Eingängen, der
einen 32-Bit-Ausgang 44b hat, der mittels eines Parallel/Reihen-Konverters
in den Abschnitt 24b des Eingabevideobusses konvertiert,
verbunden.
-
Der
Parallelkanal 45a ist zur Eingabe mit einem zweiten Multiplexer 43 mit 64 Eingängen verbunden, der
zur Eingabe auch den parallelen Ausgang 49a (32 Bit) eines
Pufferspeichers 49 hat, der mit der Verarbeitungseinheit
verbunden ist und auf den die Knotensteuerungseinheit 13 ebenfalls
Zugriff nehmen kann.
-
Der
Ausgang 45b des Multiplexers 43 ist mittels eines
entsprechenden Parallel/Reihenschaltungskonverters (P/S-Konverters) 37 sowohl
mit dem Abschnitt 25b des Ausgangsbusses 25 als
auch mit den entsprechenden Eingängen
des Multiplexers 42 und eines Hilfsmultiplexers 46 verbunden.
Der Hilfsmultiplexer 46 weist zur Eingabe außerdem den
Hilfskanal 46a auf und ist zur Ausgabe mit einem entsprechenden
Parallel/Reihen-Schaltungskonverter (P/S-Konverter) zur Konvertierung
der parallelen Daten auf dem seriellen Hilfskanal 26b verbunden.
-
Die
Multiplexer 42, 43 und 46 weisen entsprechende
Wählschalter 130a, 130b, 130c auf,
die mit der Knotensteuerungseinheit 13 verbunden sind,
um denjenigen der zwei 32-Bit-Eingänge jedes Multiplexers zu wählen, der
vollständig
auf den entsprechenden Ausgang zu schalten ist.
-
Wie
ersichtlich ist, führt
der Multiplexer 42 die Funktion der Schalter 22 und 23 aus,
weil es in Abhängigkeit
von den mittels der Wählschaltung 130a gewählten Eingänge möglich ist,
die aus den Kanälen 44a und 45b empfangenen
Daten auf den Kanal 24b zu schalten.
-
Der
Multiplexer 43 wird dagegen so gesteuert, dass auf dem
Kanal 45b die vom Bus 25a empfangenen Daten wiederholt
und die vom Ausgabepuffer 49 abgerufenen verarbeiteten
Daten übermittelt
werden.
-
Der
Multiplexer 46 schließlich
wird von der Knotensteuerungseinheit 13 so gesteuert, dass
die Daten, die am Ausgang des Multiplexers 43 anstehen,
auf dem Hilfsausgang 26b wiederholt werden, und ermöglicht somit
das lokale Abrufen der verarbeiteten Ausgabedaten des einzelnen
Knotens und ihre Weiterleitung auf einen unabhängigen Hilfskanal (der dem
in 1 gezeigten Hilfsbus 16 entspricht).
-
Wie
bereits erwähnt,
weist die Architektur gemäß einem
bevorzugten Ausführungsbeispiel
der Erfindung einen Netz- oder Konfigurationsbus 15 auf,
der in einer Schleife alle Knoten des Systems verbindet und ermöglicht,
dass jeder Knoten mit jedem anderen Knoten Daten austauschen kann.
Der dem Bus 15 zugeordnete Kanal kann auch zur Aktualisierung
der Betriebssoftware des Systems verwendet werden, jedoch ist der Bus
so konfiguriert, dass Softwarestörungen
nicht zum Ausfall des Kanals führen.
-
Um
Zugang zum Konfigurationsbus 15 zu erhalten, weist jeder
Knoten 11 der Architektur gemäß einem bevorzugten Ausführungsbeispiel
der Erfindung die in 5 schematisch dargestellten
Elemente auf.
-
Der
Eingabekonfigurationsbus 55a, der vom vorhergehenden Knoten
kommt, ist mit einem Seriell/Parallel-Konverter verbunden, um das
serielle Datenpaket, das über
den Kanal 55a geschickt wird, in parallele Datenpakete
(vorzugsweise 32-Bit-Pakete)
auf dem entsprechenden Kanal 58a zu konvertieren. Mittels
des Multiplexers 54 wird das Datenpaket nach vorn weitergegeben
(auf 58b) und serialisiert (auf 55b) und als Eingabe
zum nächsten
Knoten geschickt.
-
Die
Knotensteuerungseinrichtung (mit Bezugszeichen 53 bezeichnet)
wird lokal auf das Dekodieren des Datenpakets, das vom Kanal 58a kommt,
und das Prüfen,
ob das Paket für
den vorgesehenen Rechenknoten bestimmt ist, programmiert. Ist das
der Fall, übermittelt
die Steuerungseinrichtung 53 selbst die Daten an die lokale
CPU mittels eines Puffers 56 und eines bidirektionalen
FIFO-Speichers 57.
-
Wenn
der vorgesehene Knoten über
den Steuerbus ein Datenpaket übertragen
muss, das von der lokalen CPU erzeugt worden ist, konfiguriert die
Knotensteuerungseinrichtung 53 den Multiplexer 54 so,
dass er das von der lokalen CPU im bidirektionalen FIFO-Speicher 57 gespeicherte
Datenpaket vorwärtstransportiert, sobald
er die Sendeberechtigung (Token) (NTWK_TKNI) vom vorhergehenden
Knoten erhalten hat (wie noch beschrieben wird). (Dadurch wird der
Puffer 56 inaktiviert.)
-
Die
Steuersignale 51 und 52 werden verwendet, um die
Operationen von Sender und Empfänger(n) am
Steuerbus zu synchronisieren, wie in nachstehender Tabelle 1 dargestellt.
Diese Steuersignale sind bidirektional, so dass jede Knotensteuerungseinrichtung
sie lesen und zusätzlich
ihren Logikpegel bestimmen kann.
-
Die
Kommunikation auf dem Netzkonfigurationskanal kann von Punkt zu
Punkt (d. h. zwischen jeweils zwei Knoten des Systems), mehrfach
(d. h. zwischen ei nem Knoten und einer Gruppe weiterer Knoten) oder als
Rundsendung (d. h. zwischen einem Knoten und allen übrigen Knoten)
erfolgen.
-
Vorzugsweise
wird die Kommunikation auf dem Kanal nach Token-Ring-Logik gehandhabt.
Diese Logik, die typischerweise in LAN-Netzen verwendet wird, wird
durch Aussenden eines Steuersignals als Sendeberechtigung von Knoten
zu Knoten ausgeführt,
d. h. der Knoten, der die Sendeberechtigung erhält, kann ein Datenpaket an
einen oder mehrere Knoten im System senden.
-
Die
Paketübertragung
erfolgt, indem zunächst
ein Kopf, der Angaben zum Empfänger
des Pakets enthält,
gesendet wird. Der Kopf wird in der Hardware von allen Knoten analysiert,
wie in 5 dargestellt. Sobald der Empfangsknoten den Kopf
empfangen hat, signalisiert er, dass er für den Empfang des Pakets bereit
ist, woraufhin der Sendeknoten die Daten sendet.
-
Ein
Quittungsaustausch zwischen Sendeknoten und Empfangsknoten ist mittels
der zwei Steuersignale (NTWK_ERR und NTWK_RDY), die allen Knoten
des Systems gemeinsam sind, entsprechend der in nachstehender Tabelle
1 angegebenen Logik möglich. Tabelle 1
NTWK_RDY | NTWK_ERR | |
0 | 0 | vom
Sender nach Ablauf einer bestimmten Zeit, in der kein Knoten sich
selbst als Empfänger
erkannt hat, erzwungener Zustand |
0 | 1 | Empfänger hat
sich selbst erkannt und signalisiert, dass er für den Empfang des Pakets bereit
ist |
1 | 0 | Empfänger hat
sich selbst erkannt und signalisiert, dass er nicht für den Empfang
des Pakets bereit ist |
1 | 1 | Empfänger signalisiert,
dass er das Paket vollständig
empfangen hat |
-
Bei
Mehrfach- oder Rundsendungskommunikation gibt der Sendeknoten den
Kopf weiter. Nach Ablauf einer voreingestellten Zeit prüft die Knotensteuerungseinrichtung
des Sendeknotens, ob das NTWK_EER-Signal aktiv ist. Ist das nicht der
Fall, gibt der Sendeknoten das restliche Paket weiter, anderenfalls
wartet er einen zweiten Zeitabschnitt ab.
-
Nach
Ablauf des zweiten Zeitabschnitts gibt die Knotensteuerungseinrichtung
die Weiterleitung des restlichen Pakets am Konfigurationsbus 15 unabhängig vom
Zustand des Steuersignals NTWK_ERR frei. Wenn in diesem zweiten
Fall das Steuersignal NTWK_ERR nicht aktiv ist (d. h. den Pegel „high" hat), wenn der zweite
Zeitabschnitt abgelaufen ist, signalisiert die Steuereinrichtung
des Sendeknotens der ihm zugeordneten Verarbeitungseinheit (CPU),
dass er die Übertragung
mit Erfolg vorgenommen hat. Anderenfalls signalisiert er einen Übertragungsfehler.
-
Der
Fachmann wird erkennen, dass es bei einer Punkt-zu-Punkt-Kommunikation
möglich
ist, den Knoten festzustellen, der Kommunikationsprobleme hatte.
-
Wie
in der Darstellung von 4 zu sehen ist, sind die Steuerungen
des Knotens 13 in ein Hardware-Steuerungsnetz integriert,
das Signale zum Ermöglichen
des Empfangs und/oder des Sendens von Datenpaketen von und zu voreingestellten
Knoten über
den Ausgangsbus 25 und den Eingangsbus 24 trägt. Die Knotensteuerungseinrichtungen
sind auf die Überwachung
und die Änderung
des Zustands dieser Ermöglichungssignale
eingestellt.
-
Jede
der Knotensteuerungseinrichtungen hat eingangsseitig die folgenden
Steuersignale:
- • V1_RRI (133), das
aktiv ist, wenn einer der nachfolgenden Knoten für dieselbe Funktion, zu der
der entsprechende Knoten gehört,
einen Kopf am Eingangsbus 24 dekodiert hat und für den Empfang
des restlichen Datenpakets bereit ist;
- • V1_TPI
(131), das aktiv ist, wenn einer der Knoten der Funktion,
die auf die Funktion folgt, zu der der entsprechende Knoten gehört, einen
Kopf am Eingangsbus 24 dekodiert hat und bereit ist, das
restliche Paket zu empfangen;
- • V2_BTI
(135), das aktiv ist, wenn der entsprechende Knoten die
Freigabe zur Nutzung des Ausgangsbusses 25 zur Übertragung
eines Datenpakets zu einem oder mehreren Knoten der nächsten Funktion
erhalten hat;
- • V2_BTRI
(137), Bestätigung
des Token-in.
-
Außerdem hat
die Knotensteuerungseinrichtung 13 die folgenden Ausgangssignale:
- • V1_RRO
(134), verwendet entweder zur Weiterleitung des entsprechenden
Signals V1_RRI zum nachfolgenden Knoten oder zur Signalisierung,
dass der aktuelle Knoten einen gültigen
Kopf am Eingangsbus 24 dekodiert hat und zum Empfang des
restlichen Pakets bereit ist;
- • V1_TPO
(132), verwendet zur Weiterleitung des entsprechenden Eingangssignals
V1_TPI zum nachfolgenden Knoten;
- • V2_BTO
(136), verwendet zur Vorwärtsweiterleitung (d. h. Weiterleitung
zum nachfolgenden Knoten derselben Funktion) des Signals V2_BTI;
- • V2_BTRO
(138), Bestätigung
des Token-out.
-
Am
Videobus ist lokal zwischen den für ein und dieselbe Funktion
vorgesehenen Knoten eine Token-Ring-Logik eingerichtet. Da eine
Funktion dynamisch konfiguriert werden kann, indem sogar eine unterschiedliche
Anzahl von Knoten verwendet wird, werden zur Einrichtung einer Token-Ring-Logik
die Signale Bus-Token
(BTI/BTO) und Bus-Token-Return (BTRI/BTRO) verwendet, wie nachstehend
beschrieben wird.
-
In
jeder Knotensteuerungseinrichtung 13 sind geeignete Schalter
zur Weiterleitung der Steuersignale vorhanden, die im Netzkonfigurationsschritt
aktiviert werden können.
Insbesondere kann je nach dem Zustand des Schaltmittels ein Knoten
als „Kopfknoten", als „Zwischenknoten" oder als „Endknoten" der Funktion konfiguriert
werden.
-
Insbesondere
werden die am Kopfknoten anstehenden V2_BTRI-Signale zum V2_BTI
desselben Knotens zurückgeführt. Bei
einem Endknoten werden die Signale am V2_BTI statt dessen zum V2_BTRO
desselben Knotens zurückgeführt, während die
Signale am V1_RRI zum V1_TPO zurückgeführt werden.
Bei einem Zwischenknoten schließlich
werden alle Eingangssteuersignale zu den entsprechenden Ausgängen übertragen.
-
Gemäß der schematischen
Darstellung von 6 umfaßt eine bestimmte Konfiguration
der Architektur beispielsweise die fünf Knoten 61a, 61b, 62a, 62b und 62c,
die in die zwei Gruppen 61 und 62 eingeteilt sind,
um zwei Funktionen mit zwei bzw. drei Knoten zu bilden.
-
Die
Knoten 61a, 61b, 62a, 62b und 62c weisen
die entsprechenden Verarbeitungseinheiten 66a, 66b, 68a, 68b, 68c und
die entsprechenden Knotensteuerungseinrichtungen 63a, 63b, 67a, 67b und 67c auf.
-
Der
Eingangsbus 64 und der Ausgangsbus 65, auf die
von den Verarbeitungseinrichtungen 66a, 66b, 68a, 68b, 68c zugegriffen
werden kann, werden erfindungsgemäß mit den in den Knoten vorhandenen
Schaltmitteln konfiguriert. insbesondere die Knoten 61a und 61b sind
parallelgeschaltet zueinander und in Reihe geschaltet mit den Knoten 62a, 62b und 62c,
die zueinander parallelgeschaltet sind.
-
Der
Kopfknoten und der Endknoten für
die Funktion 61 sind durch den Knoten 61a bzw.
den Knoten 61b wiedergegeben, während der Kopfknoten, der Zwischenknoten
und der Endknoten für
die Funktion 62 dem Knoten 62a bzw. 62b bzw. 62c entsprechen.
-
Die
Funktionsweise der Architektur gemäß dem bevorzugten Ausführungsbeispiel
der Erfindung basiert auf einer datengesteuerten Logik, d. h. jedes
Datenpaket enthält
eine Kennzeichnung, als Kopf bekannt, so dass nur der oder die Knoten,
für die
die im Paket enthaltenen Daten in Frage kommen, diese Daten vom Eingangsbus
erhalten können.
-
Gemäß der in 6 gezeigten
Konfiguration arbeitet das System wie folgt, wenn ein Datenpaket
vom Kopfknoten 61a der Funktion 61 zum Zwischenknoten 62b der
Funktion 62 übertragen
werden soll:
Jede einzelne Funktion hat ihr lokales Token am
Videobus, das im Funktionskonfigurationsschritt anhand des Kopfknotens
erzeugt wird. Wenn das Token einen Knoten erreicht, wird das entsprechende
Steuersignal V2_BTI aktiviert. Wenn das zu sendende Datenpaket noch
nicht bereit ist, wenn der Sendeknoten 61a das Token empfängt, wird
das Token mittels des Steuersignals V2_BTO vorausgeschickt.
-
V2_BTRI
und V2_BTRO sind zwei Steuersignale, die als Bestätigung des
lokalen Bus-Token für
die Gruppe von Knoten, die zur Ausführung einer Funktion konfiguriert
sind, verwendet werden. Wenn ein Knoten beispielsweise ein Kopfknoten
innerhalb der Funktion ist (Knoten 67a), verwendet er als
Token das an V2_BTRI anliegende Signal, um Verbindung zum Ausgangsvideobus
zu bekommen, und gibt dann das Token vorwärts an V2_BTO weiter, wie bei
der Funktion 62 in 6 zu sehen
ist. Ist ein Knoten ein Zwischenknoten in der Funktion (Knoten 67b),
gibt er an V2_BTRO das an V2_BTRI anliegende Signal weiter. Ist
ein Knoten ein Endknoten in der Funktion (Knoten 67c),
gibt er das Token, das er an V2_BTI empfängt, an das entsprechende V2_BTRO.
Auf diese Weise kann lokal eine Token-Ring-Logik konfiguriert werden.
-
Zurück zur Funktion 61 von 6:
Sobald der Verarbeitungsknoten 66a des Knotens 61a der
Steuerung 63a signalisiert, dass ein Datenpaket zum Senden
bereit ist, nimmt die Steuerung 63a einen Zustand an, in
dem sie auf das Token wartet.
-
Wenn
der Knoten 61a erneut das Token empfängt, wird der Wert des Signals
V1_TPI, das dem Signal entspricht, das als Ausgabe von der nachfolgenden
Funktion 62 an V1_RRO ansteht und an alle Knoten der Funktion 61 weitergeleitet
wird, geprüft.
Wenn das V1_TPI-Steuersignal im „inaktiven" Zustand ist, sind alle Knoten der Funktion 62 zum
Empfang eines Kopfs bereit, woraufhin der Knoten 61a vom
Ausgangsbus 65 den Kopf des Datenpakets sendet und den
Zustand annimmt, in dem er auf die Aktivierung des Signals V1_TPI wartet.
-
Wenn
der Knoten 62b erkennt, dass der Kopf des Datenpakets für ihn bestimmt
ist, signalisiert er die Bereitschaft zum Empfang des restlichen
Pakets durch Aktivierung des Steuersignals V1_RRO, wodurch das Steuersignal
V1_TPI des Sendeknotens 61a „aktiv" wird.
-
Bei
Mehrteilnehmerkommunikation ist das Steuersignal V1_RRO, das der
Empfangsknoten weitergibt, das Ergebnis einer logischen UND-Verknüpfung zwischen
dem Zustand des V1_RRO des vorgenannten Knotens und dem Zustand
des V1_RRO des nachfolgenden Knotens derselben Funktion.
-
Am
Ende des Datenempfangs signalisiert der Knoten 62b jedenfalls,
dass er das Paket vollständig
erhalten hat, und inaktiviert das Steuersignal V1_RRO, und der Knoten 61a gibt
das Token frei.
-
Es
ist ersichtlich, dass ein Knoten im Datenkanal anders als beim zuvor
beschriebenen Netzkonfigurationskanal gleichzeitig und voneinander
unabhängig
von einer Datenübertragung
in Richtung der nachfolgenden Funktion und vom Datenempfang von
der vorhergehenden Funktion betroffen sein kann.
-
Für den Netzkonfigurationskanal
und den Datenkanal (beispielsweise Videodaten) kann mittels Software
eine andere Tokenhandhabungspolitik als die oben beschriebene gewählt werden.
Die oben beschriebene Politik sieht nämlich eine Vorwärtsweitergabe
des Token vor, wenn der Knoten, der es empfängt, kein Signal am Bus abzugeben
hat oder wenn der Knoten das Gespräch gerade beendet hat.
-
Andere
Ausführungsbeispiele
können
das Token anders handhaben, beispielsweise so, dass es im Sendeknoten
verbleibt, bis der Knoten ein Datenpaket sendet. Diese Logik kann
beispielsweise im Datenkanal zweckmäßig sein, wenn die verarbeiteten
Datenpakete in einer vorgegebenen Reihenfolge vorwärts weiterzugeben
sind.
-
Bei
einem anderen Ausführungsbeispiel
wird das Token vom Sendeknoten behalten, bis (per Software) die
Erlaubnis zur Freigabe kommt. Diese Handhabungspolitik kann zum
Beispiel dann zweckmäßig sein, wenn
eine Nachricht oder ein Datenpaket zu senden ist, die bzw. das umfangreicher
ist als die Speicherkapazität
der Puffer des Sendeknotens, so dass es in mehrere Teile aufgeteilt
werden muss, damit es in aufeinanderfolgenden Schritten übertragen
werden kann.
-
Es
ist jetzt dargelegt worden, dass die vorliegende Erfindung die angestrebten
Ziele und Aufgaben erfüllt.
Insbesondere ist gezeigt worden, dass es die beschriebene Architektur
ermöglicht,
die Verteilung der Rechenleistung zu definieren und damit funktional
festzulegen. Die Architektur ermöglicht
eine beträchtliche
Leistungssteigerung gegenüber
bekannten Architekturen, da sich die Anzahl der verwendeten Rechenknoten
erhöht.
Dank der intrinsischen Modulstruktur können die Komponenten eines
jeden Knotens außerdem
durch neue oder neuere Komponenten ersetzt werden, ohne dass die
Systemstruktur beeinträchtigt
wird.
-
Der
Fachmann wird auch erkennen, dass die beschriebene Architektur mit
jedem beliebigen vorhandenen System verknüpft werden kann, indem ein
Knoten eingebaut wird, der eine Brücke zu jedem Standardbus, beispielsweise
PCI (Peripheral Component Interconnect), VME (Versa Module Europa)
oder LAN (Local Area Network) herstellt.
-
Die
Erfindung ist im Rahmen des Erfindungsgedankens vielfältig abwandelbar.
Beispielsweise kann die Art der Steuerung abgewandelt werden, indem
anstelle des beschriebenen Netzwerkbusses 15 ein Standardbus
wie VME, PCI oder VI-TA4
verwendet wird, wobei die Architektur des Verarbeitungs- und des
Datenkommunikationsteils unverändert
bleibt.
-
Auch
liegt es auf der Hand, dass der Erfindungsgedanke, auf dem die Erfindung
beruht, unabhängig von
der speziellen Nutzung der dargestellten Komponenten ist. Folglich
ist der Schutzumfang der Ansprüche nicht
durch die Darstellungen oder die in der Beschreibung angeführten Ausführungsbeispiele
beschränkt. Vielmehr
müssen
die Ansprüche
alle patentierbaren neuen Merkmale der Erfindung einschließlich aller
Merkmale, die von einem Fachmann als Äquivalente betrachtet werden
würden,
enthalten.