-
Die
Erfindung betrifft ein Computersystem mit mehreren Knoten nach dem
Oberbegriff des Patentanspruchs 1 bzw. ein Verfahren zum Übermitteln von
Informationen in einem Computersystem mit mehreren Knoten.
-
Im
Stande der Technik ist eine Anzahl von Computersystemen mit paralleler
Verarbeitung bekannt. Im allgemeinen sind in solchen Systemen viele Prozessoren
in einem Netzwerk miteinander verbunden. In einem solchen Netzwerk
können
alle Prozessoren Befehle parallel verarbeiten. Solche Computersysteme
mit paralleler Verarbeitung können
generell in zwei Kategorien eingeteilt werden: (1). Systeme mit
einem Einzelbefehlsstrom und Mehrfachdatenstrom (SIMD – single
instruction multiple data) und (2). Systeme mit Mehrfachbefehlsstrom
und Mehrfachdatenstrom (MIMD – multiple
instruction multiple data). In einem SIMD-System führen alle
Prozessoren gleichzeitig den gleichen Befehl an verschiedenen Daten
aus. In MIMD-Systemen kann jeder der Prozessoren einen anderen Befehl
an verschiedenen Daten ausführen.
-
Sowohl
in SIMD- als auch MIMD-Systemen sind Mittel erforderlich, die eine
Kommunikation zwischen den Prozessoren im Computersystem erlauben.
Es ist bekannt, daß in
solchen Systemen die Prozessoren logisch in einem n-Kubus organisiert werden
können.
Solche n-Kubus-Systeme sind diskutiert in Herbert Sullivan und T.R.
Bashkow, A Large Scale Homogeneous, Fully Distributed Parallel Machine,
Proceedings of the 4th Annual Symposium on Computer Architecture,
Seiten 105-117, 1977. Sullivan u.a. erörtern eine Anzahl von Zusammenschaltungsstrukturen
einschließlich
der Zusammenschaltung von Prozessoren in einem Bool'schen n-Kubus. Der
beschriebene Bool'sche
n-Kubus ist eine Zusammenschaltung von N (N=2n)
Prozessoren, welche an den Ecken eines N-dimensionalen Kubus angeordnet
gedacht sein können.
Sullivan u.a. offenbaren die Lagebestimmung eines Prozessors, welche
beschrieben werden kann durch die Kennzeichnung eines Prozessors
als Koordinatenursprung mit einer binären Adresse (0,0,...0) von
n Bits. Die Positionen der anderen Prozessoren können dann als Binärzahl von
n Bits ausgedrückt
wer den, in welcher jede Bitposition als eine Koordinate entlang
einer der n Dimensionen angesehen wird. Wenn ein Prozessor direkt mit
einem anderen verbunden ist, so unterscheiden sich ihre Adressen
in einem solchen System nur durch ein Bit. Die Lage dieses Bits
zeigt die Richtung im n-Raum an, entlang welcher die Kommunikation zwischen
den Prozessoren stattfindet. Folglich unterscheidet sich die Adresse
eines Prozessors in Bezug auf einen benachbarten Prozessor nur durch
ein Bit.
-
Nach
dieser Druckschrift kann in einem solchen System eine relative Adresse
durch eine Bit-für-Bit-Summation
(modulo 2) der Adressen der zwei Prozessoren berechnet werden. Diese Bit-für-Bit-Summation ist äquivalent
zur Exklusiv-ODER-Operation der beiden Adressen. Die Anzahl der
Bits ungleich Null in der resultierenden relativen Adresse repräsentiert
die Anzahl der Verbindungen, welche zu durchlaufen sind, um von
einem Prozessor zu einem anderen zu gelangen.
-
In
der
US-PS 4 598 400 (Hillis)
ist ein ähnliches
n-Kubus-Parallelverarbeitungs-Computersystem
beschrieben. Dabei ist eine Matrix von Knoten zu einem Muster von
zwei oder mehr Dimensionen zusammengeschaltet, und die Kommunikation
wird zwischen den Knoten durch Adressen gelenkt, die die Verschiebung
der Knoten anzeigen. Insbesondere offenbart Hillis ein System, in
welchem ein Nachrichtenpaket von einem Knoten zu einem anderen in
einem n-Kubus-Netzwerk geleitet werden kann. Das Nachrichtenpaket
enthält
eine relative Adreßinformation
und zwischen den Knoten auszutauschende Informationen.
-
Viele
bekannte Computersysteme mit paralleler Verarbeitung benutzen einen
Speicher-und-Weiterleitungs-Mechanismus zum Übermitteln von Nachrichten
von einem Knoten zu einem anderen. Das System von Hillis macht von
einem solchen Speicher-und-Weiterleitungs-Mechanismus Gebrauch.
Speicher-und-Weiterleitungs-Mechanismen
sind deutlicher beschrieben in Parviz Kermani und Leonard Kleinrock,
Virtual Cut-Through: A new Computer Communication Switching Technique, Computer
Networks, Bd. 3, 1979, Seiten 267-268. Kermani u.a. unterscheiden
Speicher-und-Weiterleitungs-Systeme von leitungsvermittelten Systemen. Insbesondere
wird ein leitungsvermitteltes System beschrieben als ein System,
in welchem ein vollständiger
Leitweg zur Kommunikation zwischen zwei Knoten errichtet wird, bevor
die Kommunikation beginnt. Der Kommunikationsleitweg wird dann während der
gesamten Dauer der Kommunikation zwischen den zwei Knoten aufrechterhalten.
In Speicher-und Weiterleitungs-(oder Paket-)Vermittlungssystemen
werden die Nachrichten zu einem Bestimmungsknoten weitergeleitet,
ohne zuvor einen Leitweg zu erstellen. In solchen Systemen wir der
Leitweg dynamisch während
der Nachrichtenübertragung
erstellt, was generell auf der Adreßinformation in der Nachricht
basiert. Grundsätzlich
werden Nachrichten an Zwischenknoten gespeichert, bevor sie zu einem
ausgewählten
nächsten
Knoten weitergeschickt werden. Kermani u.a. erörtern ferner die Idee der paketvermittelten
Systeme. Ein paketvermitteltes System erkennt eine verbesserte Ausnutzung
von Resourcen, und eine Reduzierung der Netzwerkverzögerung kann
in einigen Netzwerksystemen durch Unterteilung einer Nachricht in
kleinere, Pakete genannte Einheiten erreicht werden. In solchen
Systemen trägt
jedes Paket (anstelle der Nachricht) seine eigene Adreßinformation.
-
Kermani
u.a. stellten fest, daß eine
zusätzliche
Verzögerung
in bekannten Systemen hinzutritt, weil eine Nachricht (oder ein
Paket) erst nach vollständigem
Empfang zur Übersendung
von einem Knoten zum nächsten
zugelassen wird. Deshalb schlugen Kermani u.a. eine "virtuelles Durchschalten" genannte Möglichkeit
zum Errichten eines Kommunikationsleitwegs vor. Das virtuelle Durchschaltsystem
ist ein Hybrid aus Leitungsvermittlungs- und Paketvermittlungstechnik,
in welchem eine Nachricht die Übertragung über einen
hinausführenden
Kanal beginnen kann bei Empfang der Leitweg-Information im Nachrichtenpaket
und Auswahl eines hinausführenden
Kanals. Wenn alle dazwischenliegenden Kanäle besetzt sind, führt dieses
System zu Durchsatz zeiten, die exakt die gleichen sind wie in einem
Speicher-und-Weiterleitungs-System.
Wenn alle dazwischenliegenden Knoten unbesetzt sind, führt dieses System
zu Durchsatzzeiten, die ähnlich
denen eines leitungsvermittelten Systems sind. Jedoch erfordert das
von Kermani u.a. offenbarte System noch eine ausreichende Pufferung,
um die Speicherung einer gesamten Nachricht an jedem Knoten zu ermöglichen,
wenn alle Kanäle
besetzt sind.
-
In "A VLSI Architecture
for Concurrent Data Structures",
Ph.D. Thesis, Department of Computer Science, California Institut
of Technology, Technical Report 5209, März 1986, beschreibt W.J. Dally
eine Architektur mit gleichzeitig durchlaufenden Nachrichten, um
eine verringerte Nachrichtendurchlaufverzögerung zu erreichen. In Kapitel
3 beschreibt Dally eine symmetrische binäre n-Kubus-Architektur.
-
In
Kapitel 5 beschreibt Dally eine Anwendung zur Verringerung der Nachrichtenverzögerung. Grundsätzlich offenbart
Dally die Anwendung eines "Wormhole"-Vermittlungsverfahrens,
anstelle eines Speicher-und-Weiterleitungs-Verfahrens. Ein "Wormhole"-Vermittlungsverfahren ist durch einen
Knoten charakterisiert, der mit dem Weiterleiten jedes Bytes einer
Nachricht zum nächsten
Knoten bereits beginnt, wenn die Bytes der Nachricht ankommen, und nicht
erst auf die Ankunft des gesamten Pakets wartet, bevor die Übertragung
zum nächsten
Knoten beginnt. Das "Wormhole"-Vermitteln ergibt
somit als Nachrichtenverzögerungszeit
die Summe von zwei Termen, von denen einer von der Länge L der
Nachricht und der andere von der Anzahl D der zu überbrückenden
Kommunikationskanäle
abhängt.
Das Speicher-und-Weiterleitungs-Vermitteln bewirkt Verzögerungen,
die von dem Produkt von L und D abhängen (siehe Dally auf Seite
153).
-
Ein
weiterer Vorteil eines "Wormhole"-Vermittlungsverfahrens
ist, daß die
Kommunikation nicht die Speicherbandbreite der zwischenliegenden
Knoten aufbraucht. Im Dally-System treten die Pakete nicht mit dem
Prozessor oder Speicher der entlang des Leitwegs durchlaufenen Zwischenknoten
in Wechselwirkung, sondern verbleiben exakt innerhalb eines Netzwerks
von Vermittlungschips bis sie ihr Ziel erreichen.
-
Dally
offenbart ein selbstgetaktetes System, das jedem Prozessorknoten
das Arbeiten bei seiner eigenen Rate ohne globale Synchronisation
ermöglicht
(siehe Dally Seite 153).
-
Auf
den Seiten 154-157 beschreibt Dally ferner ein Nachrichtenpaket,
das Felder mit der relativen X- und Y-Adresse, ein Datenfeld variabler
Größe mit einer
Mehrzahl von Datenbytes, die nicht gleich Null sind, und ein Abschlußbyte enthält.
-
Ein
Computersystem mit den Merkmalen des Oberbegriffs des Patentanspruchs
1 ist aus der
GB 2 227
341 A bekannt.
-
Ein
System, das durch ein mit den Daten übermitteltes (Strobe-)Signal
gesteuert wird, hat eine nur begrenzt erweiterbare Systemtopologie.
Diese Begrenzung tritt infolge des Umstandes auf, daß das Taktsignal
nicht regeneriert wird, wenn es durch jeden Knoten eines Pfades
geleitet wird, wie das bei den Daten der Fall ist. Da das Taktsignal
nicht regeneriert wird, ist es für
sogenannten Impulsschwund anfällig.
-
Der
Impulsschwund tritt auf, wenn ein Signal durch Bauelemente zwischengespeichert
wird, die ungleiche Signal-Anstiegs- und Abklingzeiten haben. Der Impulsschwund
kann eine schwere Asymmetrie in dem Taktsignal hervorrufen und schließlich zu
Datenfehlern führen.
-
Datenfehler
können
auftreten, wenn die Datenhaltezeiten infolge von Impulsschwund nicht
eingehalten werden. Bei der Erfindung wird die Datenhaltezeit durch
die Frequenz des Taktgebers garantiert. Niedrigere Frequenzen führen zu
mehr Haltezeit. Da die Daten an beiden Flanken des Taktsignals bestätigt werden,
erhöht
jede Unsymmetrie in diesem Signal die effektive Frequenz und reduziert
die verfügbare
Datenhaltezeit. Mit wachsender Länge
des Leitwegs werden die Wirkungen des Impulsschwunds ausgeprägter und
können
ggf. Fehler hervorrufen.
-
Aufgabe
der Erfindung ist es, ein System zur Verfügung zu stellen, bei dem der
Impulsschwund des Taktsignals eliminiert ist.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Computersystem mit den Merkmalen des Patentanspruchs 1 bzw. ein
Verfahren mit den Merkmalen des Patentanspruchs 7 gelöst. Vorteilhafte
Weiterbildungen sind in den Unteransprüchen gekennzeichnet.
-
Die
Erfindung sieht in bevorzugter Ausführungsform ein Computersystem
vor, das mehrere in einem binären
n-Kubus zusammengeschaltete Verarbeitungsknoten aufweist. Jeder
Knoten weist Verarbeitungsmittel zur Informationsverarbeitung und Vermittlungsmittel
zum Weiterleiten von Informationen zwischen den Knoten in dem n-Kubus
auf.
-
Die
Erfindung gestattet die Informationsübertragung zwischen Knoten
unter der Steuerung eines Taktsignals (clock strobe), das mit den
Informationen gesendet wird. Jeder Kanal weist Mittel zur Übertragung
von Dateninformationen (sowohl aktueller Nachrichtendaten als auch
von Status- und Steuerinformationen) und zur Übertragung von Taktinformationen
zum Steuern des Sendens und Empfangens der Dateninformationen auf.
Eine Schaltung zum Regenerieren des Flankenwechsels beseitigt die
Gefahr des Impulsschwunds durch Regenerieren jeder zweiter Flanke
des Taktsignals bei seinem Weiterleiten durch jeden Knoten des Leitwegs.
Alle ungeradzahligen Flanken des Taktsignals werden durch die weiterleitende
Hardware unverändert
gelassen. Sie werden benutzt, um die an jedem Vermittler (Router) empfangenen
Daten zu bestätigen
und um die Daten zum nächsten
Vermittler durchzutakten. Die gepufferten ungeradzahligen Taktflanken
werden dann zum nächsten
Vermittler gesendet. Bei Empfang einer Nachricht bestätigen die
geradzahligen Flanken des Taktsignals die Daten, so daß sie in
einem Empfangsregister gespeichert werden können. Dies ist ebenso wie bei
den ungeradzahligen Flanken. Jedoch werden die geradzahligen Flanken
anders behandelt. Nachdem die Daten in dem Empfangsregister gehalten
werden, werden sie zum nächsten
Register des Vermittlers mit Hilfe einer modifizierten oder "synthetischen" Taktflanke anstelle
der empfangenen geradzahligen Taktflanke weitergetaktet. Die synthetische
Taktflanke wird durch Verzögerung der ungeradzahligen
Taktflanke um einen Betrag, der etwa der halben Periodendauer des
Taktsignals entspricht, erzeugt. Dies ergibt eine ideale zeitliche
Anordnung der geradzahligen Flanken und kompensiert jeglichen Impulsschwund,
der in der empfangenen Wellenform des Taktsignals vorhanden sein
könnte. Im
Resultat ist das Taktsignal "regeneriert" und seine Übertragungssymmetrie
stimmt von einem Vermittler zum nächsten überein.
-
Im
folgenden wird die Erfindung anhand eines in der Zeichnung dargestellten
Ausführungsbeispiels
näher erläutert. In
der Zeichnung zeigen:
-
1 eine
grafische Darstellung eines bei der Erfindung benutzbaren n-Kubus-Netzwerks
von Prozessoren;
-
2A ein
Blockschaltbild, das eine erfindungsgemäße Vermittler-Architektur veranschaulicht;
-
2B ein
Blockschaltbild, das die Organisation eines von der Erfindung benutzbaren
Status-Leitwegs veranschaulicht;
-
3 ein
Blockschaltbild, das einen physikalischen Kanal zwischen Knoten
darstellt;
-
4A ein
Zeitablaufdiagramm, das das Zeitverhalten eines Kanals bei einem
Ausführungsbeispiel
der Erfindung darstellt;
-
4B eine
Darstellung des Datenformats für
das Senden von Daten und Statusinformationen des Ausführungsbeispiels;
-
4C eine
Darstellung eines Formats für das
Senden von Statusinformationen bei dem Ausführungsbeispiel;
-
5 eine
grafische Darstellung, die das Errichten eines Nachrichtenleitwegs
in einem vernetzten Computersystem veranschaulicht, wie es durch die
Erfindung ausgeführt
werden kann;
-
6 eine
Veranschaulichung der Bestätigung
des Errichtens eines Leitwegs in einem vernetzten Computersystem,
wie sie durch die Erfindung ausgeführt werden kann;
-
7 eine
Veranschaulichung der Nachrichtenübertragung in einem vernetzten
Computersystem, wie sie durch die Erfindung ausgeführt werden kann;
-
8 eine
Veranschaulichung der Freigabe eines Leitwegs in einem vernetzten
Computersystem bei der Erfindung;
-
9 eine
Datenhalte- bzw. Latch-Schaltung in einem typischen Vermittler der
Erfindung;
-
10 ein
erstes Ausführungsbeispiel
eines erfindungsgemäßen Vermittlers
einschließlich
einer Taktgeneratorschaltung zur Erzeugung eines Strobe-Signals;
-
11 ein
zweites Ausführungsbeispiel
eines Vermittlers mit einer Taktgeneratorschaltung zur Regenerierung
des Taktsignals;
-
12 ein
bevorzugtes Ausführungsbeispiel der
Taktgeneratorschaltung;
-
13 ein
Zeitablaufdiagramm der Taktgeneratorschaltung.
-
Es
wird ein Computersystem mit paralleler Verarbeitung beschrieben.
In der folgenden Beschreibung werden zahlreiche spezielle Details
angegeben, um das Verständnis
für die
Erfindung zu erleichtern. Für
den Fachmann ist es jedoch offensichtlich, daß die Erfindung auch ohne diese
speziellen Details ausführbar
ist. In anderen Fällen
werden bekannte Schaltungen, Strukturen und Techniken nicht im Detail
gezeigt, um die Erfindung nicht mit unnötigen Einzelheiten zu belasten.
-
Beschrieben
wird ein direkt verbindendes Vermittlungs- bzw. Routing-System welches
für eine verbesserte
Leistungsfähigkeit
bei bekannten Parallelverarbeitungscomputersystemen sorgt. Der Direktverbindungsmechanismus
erhöht
die Leistungsfähigkeit
in Parallelverarbeitungscomputersystemen durch Verringerung der
Nachrichtendurchlaufverzögerung
und Steigerung der Knoten-zu-Knoten-Bandbreite
und ermöglicht
einen gleichzeitigen bidirektionalen Nachrichtenverkehr zwischen
zwei beliebigen Knoten.
-
Das
Direktverbindungs-Vermittlungssystem ist ein Hardwaregesteuertes
Nachrichtensystem, das eine Mehrzahl von Vermittlern aufweist, wobei
jeder Vermittler mit einem Verarbeitungsknoten gekoppelt ist. Die
Vermittler gestatten einen Austausch von Nachrichten beliebiger
Größe zwischen
Paaren der Verarbei tungsknoten.
-
Die
Vermittler bilden ein leitungsvermitteltes Netzwerk, das dynamisch
einen Leitweg (Route) von einem Quellknoten zu einem Bestimmungsknoten
erstellt. Der Leitweg bleibt für
die Dauer der Nachricht geöffnet.
Der Leitweg weist eine Serie von Kanälen auf, die einen einzigen
Leitweg vom Quellknoten zum Bestimmungsknoten bilden. Der Leitweg
kann durch eine Anzahl von den Leitweg definierenden Zwischenknoten
hindurchlaufen. Der Leitweg gestattet die Übertragung von Daten und eines
die Übertragung
der Daten steuernden Taktes über
den gleichen Leitweg.
-
Die
Kanäle
des bevorzugten Ausführungsbeispiels
der Erfindung sind bit-serielle Duplex-Kanäle und schaffen eine Verbindung
von einem Knoten zu seinem nächsten
Nachbarknoten in einem n-Raum. Im bevorzugten Ausführungsbeispiel
unterstützt
ein Vermittler Verbindungen für
bis zu acht Duplex-Kanäle
und kann zur Bildung eines Netzwerks von bis zu sieben Dimensionen
mit 128 Knoten zusammengeschaltet werden. Für den Fachmann ist es klar,
daß andere
Ausführungsbeispiele
mit einer größeren oder
geringeren Anzahl von Dimensionen und/oder Knoten konstruiert werden
können.
-
Jeder
der acht Kanäle
wird unabhängig
vermittelt, was die Vermittlung von bis zu acht Nachrichten gleichzeitig
gestattet. In dem bevorzugten Ausführungsbeispiel dient ein ausgewählter Kanal
je Vermittler als externer Leitweg in das Netzwerk und gestattet
entfernten Geräten,
auf die volle Vermittlungsfähigkeit
des Netzwerks zuzugreifen.
-
Der
Vermittler kommuniziert mit seinen Verarbeitungsknoten über zwei
gerichtete parallele Busse.
-
In
bevorzugten Ausführungsbeispielen
basiert die Vermittlung auf dem von Sullivan u.a. erörterten
n-Kubus-Vermittlungsalgorithmus. Dieser Algorithmus garantiert ein
von Blockierungen freies Netzwerk. Wie weiter unten detaillierter
beschrieben werden wird, werden in der Erfindung die Leitwege dynamisch
für jede
Nachricht vor ihrer Übertragung konstruiert.
Ein komplet ter Leitweg wird in einem schrittweisen Verfahren aufgebaut,
in welchem die Abschnitte des Leitwegs ausgehend von dem jeweiligen
Vermittler ausgewählt
werden. Nachdem ein Leitweg definiert wurde, werden die Kanäle, welche den
Leitweg bilden, für
die Dauer der Nachricht gehalten. Die Übertragung einer Nachricht
beginnt, wenn der Bestimmungsknoten bereit ist, mit dem Empfangen
der Nachricht zu beginnen, und die Kanäle werden freigegeben, wenn
das Ende der Nachricht die durch den Kanal verbundenen Vermittler passiert.
-
Das
Direktverbindungs-Vermittlungssystem der Erfindung ist eine Variante
der durch Dally erörterten "Wormhole"-Vermittlung. Erfindungsgemäß wird die
Nachricht übertragen,
nachdem der Leitweg erstellt ist, im Gegensatz zur Erstellung des
Leitwegs als Teil der Übertragung
der Nachricht, wie es von Dally erörtert wurde. Dieser Aspekt
der Erfindung gestattet es dem System, vollständig synchron zu arbeiten,
und reduziert oder eliminiert die Notwendigkeit zur Pufferung für die Durchflußsteuerung
in Zwischenvermittlern.
-
In
der Erfindung wird ein Vermittlungssondiersignal, das eine relative
Adreßinformation
enthält,
zunächst
von Vermittler zu Vermittler im Netzwerk übertragen, um einen Leitweg
zwischen einem Ursprungsknoten und einem Bestimmungsknoten zu erstellen.
Nachdem der Leitweg erstellt wurde, wird die Nachricht zwischen
den beiden Knoten ausgetauscht. Ferner beschreibt die Erfindung
eine von der Verarbeitungsschaltung eines Knotens zu unterscheidende
separate Schaltung zur Steuerung der Vermittlung. Unter Benutzung
dieser Aspekte der Erfindung wird die Nachrichtendurchlaufverzögerung signifikant
gegenüber
bekannten Systemen reduziert. Wie bereits weiter oben erörtert, benutzen
solche bekannten Systeme weitgehend Speicher-und-Weiterleitungs-Paketvermittlungs-Netzwerke.
-
Unter
Benutzung der oben beschriebenen Techniken werden die Nachrichten
von einem Ursprungsknoten zu einem Bestimmungsknoten mit minimalen
Verzögerungen
der Vermittlung durch Zwischen knoten weitergeleitet. Ferner erfordert
die Weiterleitung der Nachrichten durch Zwischenknoten keine Unterbrechung
von Prozessen auf diesen Knoten oder Zwischenspeicherungen zur Durchflußsteuerung
an den Zwischenknoten.
-
Das
bevorzugte Ausführungsbeispiel
der Erfindung implementiert die Vermittler mit Hilfe programmierbarer
Gate-Arrays.
-
Das
bevorzugte Ausführungsbeispiel
weist eine Anzahl von Einplatinenprozessoren oder Knoten auf, die
mit bit-seriellen Duplex-Kanälen
zu einem Kubus zusammengeschaltet sind, bei dem jeder Knoten N nächste Nachbarknoten
hat. Das System hat dann die Dimension N. Das bevorzugte Ausführungsbeispiel
weist 128 Knoten auf, wobei N = 7 ist. 1 stellt
die hierbei verwendeten Kanal- und Knoten-Benennungen dar. 1 stellt
einen Kubus der dritten Dimension dar.
-
Im
bevorzugten Ausführungsbeispiel
sind den Knoten einmalige Adressen derart zugewiesen, daß sich die
Adressen von zwei beliebigen nächsten Nachbarknoten
durch ein Bit unterscheiden. Die Adresse des Knotens 0 100 ist
000. Die Adresse des Knotens 1 101, eines nächsten Nachbarns
des Knotens 0 100, ist 001.
-
Folglich
differieren die Adressen der beiden Knoten nur in einem Bit.
-
Die
Erfindung definiert die Dimension des Kanals zwischen zwei Knoten
durch Berechnen der binären
Exklusiv-ODER-Operation der Adressen der beiden Knoten. Nach Berechnung
der binären
Exklusiv-ODER-Operation ist die Bitposition, an der eine 1 verbleibt
(Bitposition 0, 1 oder 2 im Fall der 1), die
Kanalnummer. Beispielsweise ist das Ergebnis der Exklusiv-ODER-Operation
von 000 und 001, der Adresse des Knotens 0 100 bzw. der
Adresse des Knotens 1 101, gleich 001. Wie man an dem Ergebnis
sieht, steht an der Bitposition 0 eine 1. Folglich sind diese beiden
Knoten durch einen Kanal verbunden, der als Kanal 0 102 gekennzeichnet
ist, weil er die Dimension 0 hat.
-
Obwohl
im bevorzugten Ausführungsbeispiel eine
relative Adresse am Ursprungsknoten berechnet wird und die relative Adresse
zum Erstellen des Leitwegs von Knoten zu Knoten übertragen wird, sind alternative
Ausführungsbeispiele
denkbar. Beispielsweise kann in einem anderen Ausführungsbeispiel die
absolute Adresse des Bestimmungsknotens von Knoten zu Knoten weitergeleitet
werden. An jedem Knoten wird dann die relative Adresse auf der Grundlage
der absoluten Adresse des Bestimmungsknotens und der Adresse des
aktuellen Knotens berechnet. Diese relative Adresse wird benutzt,
um den Kanal zu bestimmen, auf welchem zum nächsten Knoten gesendet werden
soll.
-
ARCHITEKTUR
DES VERMITTLERS
-
2A veranschaulicht
einen Vermittler der Erfindung. Der Vermittler des bevorzugten Ausführungsbeispiels
enthält
acht unabhängige
Vermittlungselemente 201 bis 208 für jeweils
einen von acht Eingangskanälen
(numeriert von 0 bis 7) 211 bis 218. Die Vermittlungselemente 201 bis 208 erstellen
dynamisch Nachrichtenleitwege durch Module des erfindungsgemäßen Computersystems.
Jedes Vermittlungselement 201 bis 208 kann jeweils
einen von sieben Ausgangskanälen 221 bis 228 treiben.
Da mehrere Vermittlungselemente 201 bis 208 denselben Ausgangskanal 221 bis 228 gleichzeitig
anfordern können,
ist ein Entscheidungsmechanismus 230 zur Lösung von
Konflikten vorgesehen.
-
Der
Vermittler des bevorzugten Ausführungsbeispiels
weist ferner zwei gerichtete parallele Kanäle auf, einen Knotenquellenkanal 231 und
einen Knotensenkenkanal 232. Jedes der Vermittlungselemente 201 bis 208 kann
den Knotensenkenkanal 232 zur Ausgabe anfordern, und in
gleicher Weise kann der Knotenquellenkanal 231 auf alle
Ausgangskanäle 221 bis 228 zugreifen.
-
Im
bevorzugten Ausführungsbeispiel
arbeitet das Vermittlungselement 208 des Kanals 7 als I/O-Port
für externe
Geräte.
Damit wird ein I/O-Gateway in das bzw. aus dem Netzwerk für entfernt
liegende Geräte,
wie beispielsweise Diskettenantriebe, Grafikgeräte und Echtzeit-I/O-Baugruppen
zur Verfügung
gestellt. Im bevorzugten Ausführungsbeispiel dient
Kanal 7 des Knotens 0 als Schnittstelle zum Leitrechner. Der Kanal
7 der anderen Knoten dient allgemeinen Zwecken und wird im gegenwärtig bevorzugten
Ausführungsbeispiel
als I/O-Gateway zu Diskettentreibern benutzt.
-
Wie
weiter unten detaillierter beschrieben werden wird dient die Erfindung
der Vermittlung eines Vermittlungssondiersignals von einem Ursprungsknoten
zu einem Bestimmungsknoten. Die Vermittlung des Vermittlungssondiersignals
dient der Reservierung eines Leitwegs für die nachfolgende Übertragung
einer Nachricht. Dieser reservierte Leitweg kann als ein primärer Nachrichtenleitweg
bezeichnet werden.
-
STATUSLEITWEGE
-
Zusätzlich zu
den primären
Nachrichtenleitwegen liefert das bevorzugte Ausführungsbeispiel einen als Statusleitweg
bezeichneten sekundären
Leitweg, welcher Statusinformationen vom Bestimmungsknoten zum Quellknoten
jeder Nachricht weiterleitet. Im bevorzugten Ausführungsbeispiel
wird der Statusleitweg benutzt, um die Flußsteuerung für Nachrichten
zu sichern. Um die Statusinformation zwischen den Vermittlern auszutauschen,
erfolgt ein Multiplexen der Statusinformationen auf die Kanäle während der
Nachrichtenübertragung.
In der Abwesenheit von Nachrichten laufen die Statusinformationen
kontinuierlich durch.
-
Um
das Aufstellen von Statusleitwegen zu unterstützen, weisen die Vermittler
des bevorzugten Ausführungsbeispiels
eine "Sende-Status"-Logik auf. Diese
Statuslogik ist in 2B veranschaulicht. Die "Sende-Status"-Logik gestattet
das Zurückleiten
von Statusinformationen, die die Bereitschaft des Bestimmungsknotens
zum Empfang einer Nachricht anzeigen, vom Bestimmungsknoten über die
Zwischenknoten zum Ursprungsknoten. Jeder Vermittler ist in der
Lage, Statusinformationen für
acht gleichzeitige Nachrichten zu vermitteln. Die "Bestimmungsort bereit"-Statusinformation
wird vom Bestimmungsknoten zurück
zum Ursprungsknoten über
dieselben Zwischenknoten in der der Nachricht entgegengesetzten
Richtung weitergegeben.
-
Wie
bereits oben erörtert,
wird die Statusinformation im bevorzugten Ausführungsbeispiel mit den Daten
während
der Nachrichtenübertragung zeitlich
verschachtelt (Multiplex). Wie man mit Blick auf 2B sieht,
wird die "Sende-Status"-Information vom
Statusschalter 256 über
die Statussendeleitungen 257 zu den Ausgangskanälen 258 geliefert. Diese
Statusinformation wird mit den Daten auf den Datenausgangsleitungen
Ch0 bis Ch7 251 zeitlich verschachtelt.
-
Wenn
kein Nachrichtenverkehr stattfindet, liefert der Statusgenerator 250 die über die
Leitungen Ch0 bis Ch7 251 auszusendenden Statusinformationen.
Der Statusgenerator 250 liefert das gleiche "Sende-Status"-Signal, wie es an
den Vermittler über die
Eingangskanäle 259 angelegt
wurde, für
alle unbesetzten Kanäle.
Diese Statusinformationen werden dem Statusgenerator 250 über die "Sende-Status"-Leitungen 254 zur
Verfügung
gestellt.
-
Für den Fachmann
ist es offensichtlich, daß andere
Techniken für
die Kommunikation der Statusinformationen benutzt werden können. Beispielsweise
kann eine direkte Verdrahtung der Knoten zur Kommunikationen der
Statusinformationen benutzt werden. Andererseits können explizite
Statusnachrichten übertragen
werden. Jede dieser Techniken hat verschiedene Vor- und Nachteile.
-
Als
Antwort auf den Empfang eines Vermittlungssondiersignals am Bestimmungsknoten
sendet der Bestimmungsknoten das "Bestimmungsort fertig"-Signal, indem es
durch den Deserialisierer erzeugt und über die Leitung 252 ausgegeben
wird. Nachdem es einige Zwischenvermittler durchlaufen hat, trifft
das Signal am Serialisierer des Quellvermittlers als ein "Gestatte-Daten"-Steuersignal auf
Leitung 253 ein. Das "Gestatte-Daten"-Signal steuert, wie der Name sagt, die Übertragung
der Daten vom Serialisierer des Quellvermittlers.
-
BESCHREIBUNG
DER KANÄLE
-
Die
Kanäle
des bevorzugten Ausführungsbeispiels
verbinden einen mit einem Knoten gekoppelten Vermittler mit jedem
der Vermittler der nächsten
Nachbarknoten. Im bevorzugten Ausführungsbeispiel weist jeder
Kanal vier Leiter 301 bis 304 auf, wie es in 3 gezeigt
ist. Die Benennung der Leitungen in 3 kann mit
Bezugnahme auf den Knoten 0 verstanden werden. Die "Strobe-hinaus"-Leitung 301 überträgt das Strobe-Signal
aus dem Knoten 0. Die "Daten
hinaus"-Leitungen 303 übertragen
Datensignale vom Knoten 0. Die "Strobe-hinein"-Leitung 303 ist
angekoppelt, um dem Knoten 0 den Empfang des Strobe-Signals zu ermöglichen.
Die "Daten-hinein"-Leitungen 304 sind
angekoppelt, um den Knoten 0 den Empfang der Datensignale zu ermöglichen. Folglich
sind die Leitungen 301 bis 304 als zwei Paare
von Leitern für
jeden Kanal denkbar; ein erstes Paar aus dem "Strobe-hinaus"-Leiter 301 und den "Daten-hinaus"-Leitern 302 und
ein zweites Paar aus dem "Strobe-hinein"-Leiter 303 und
den "Daten-hinein"-Leitern 304.
Die Paare arbeiten unabhängig
voneinander.
-
Die
seriellen Daten und die Steuerungs- und Status-Bits werden über die
Datenleitungen übertragen.
Die Strobe-Leitungen werden benutzt, um die Datenleitungen zu bestätigen, und
auch, um eine Taktquelle für
die nachfolgenden Vermittler zur Verfügung zu stellen. Wie man mit
Blick auf 4A sieht, werden sowohl die
ansteigenden Flanken, wie beispielsweise die Flanken 411 und 421,
als auch die fallenden Flanken, wie beispielsweise die Flanken 412 und 422,
der Strobe-Signale 401 und 403 benutzt, um die
Datenleitungen 402 und 404 zu bestätigen.
-
In
der Erfindung wird das über
die Leitungen 301 und 303 übermittelte Taktsignal benutzt,
um die entsprechenden Daten auf den Leitungen 302 bzw. 304 zu
takten. Dieses Taktsignal wird mit den Daten über den gesamten Nachrichtenleitweg übertragen. Benutzt
man diese Technik des Übertragens
eines Taktsignals gemeinsam mit einem Datensignal, so können die
Daten stets durch ein einzelnes Taktsignal gesteuert werden, während jeder
Knoten (und der dem Knoten zugeordnete Vermittler) mit seinem eigenen
Taktsignal arbeiten kann. An einem vorgegebenen Knoten wird ein
Kanal durch das mit den empfangenen Daten übermittelte Taktsignal gesteuert.
-
Mit
Blick auf 1 sei beispielsweise angenommen,
daß Daten
vom Knoten 4 (Adresse 100) zum Knoten 1 (Adresse 001) übermittelt
werden sollen. Führt
man die Exklusiv-ODER-Operation von 100 und 001 aus, ergibt
dies eine relative Adresse von 101. Folglich werden die
Daten vom Serialisierer des Knotens 4 zum Kanal-0-Vermittlerelement
des Knotens 5 weitergeleitet. Dann werden die Daten aus dem Kanal-0-Vermittlungselement
des Knotens 5 über
den Kanal 2 zum Kanal-2-Vermittlungselement des Knotens 1 weitergeleitet.
-
Während dieses
Verfahrens wird ein Taktsignal durch den Serialisierer des Knotens
4 erzeugt, welches mit den Daten über die "Strobe-hinaus"-Leitung 301 gemäß 3 übertragen
wird. Dieses Taktsignal wird durch das Kanal-0-Vermittlungselement des
Knotens 5 empfangen und benutzt, um das Kanal-0-Vermittlungselement
zu steuern. Der Takt wird mit den Daten über Kanal 2 vom Kanal-0-Vermittlungselement
weiter übertragen
und durch das Kanal-2-Vermittlungselement des Knotens 1 empfangen.
Folglich folgt der Takt den Daten während ihrer gesamten Übertragung
entlang des Leitwegs.
-
Ein
Vorteil der erfindungsgemäßen Vermittlungstechnik
gegenüber
vollständigen
Handshake-Protokollen ist, daß die
Technik der Erfindung eine generell höhere Datentransferrate gestattet.
Die Transferraten von Handshake-Protokollen sind generell geringer
aufgrund der durch die erforderlichen Bestätigungen von Knoten zu Knoten
hervorgerufenen Verzögerung
und aufgrund der Geschwindigkeitsverringerung durch die physikalisch
längeren Kanäle. In der
Erfindung eliminiert die Benutzung von FIFO-Pufferspeichern an den
Nachrichtenbestimmungsorten und die den Datensignalen durch die
Datenübertragung
folgenden Taktsignale die Notwendigkeit für Handshake-Protokolle. Folglich
ist der Durchsatz keine Funktion der Kanallänge oder der Bestätigungsverzögerung.
Die Datenbandbreite des bevorzugten Ausfüh rungsbeispiels beträgt 2,8 Mbytes/s.
-
In
der Erfindung werden zwei Status/Steuerungs-Bits auf einer kontinuierlichen,
wiederholenden Grundlage zwischen den nächsten Nachbarknoten unabhängig davon,
ob eine Nachrichtenübertragung stattfindet,
ausgetauscht. Diese Bits sind das "Ende der Nachricht"-Bit (EOM) und das "Status-fertig"-Bit (RDY). Das EOM-Bit zeigt an, daß das letzte
Wort der Nachricht übertragen
wurde. Dieses Bit wird ignoriert, wenn nicht eine Nachricht in der
Ausführung
begriffen ist. Das RDY-Bit repräsentiert
den Zustand der Bereitschaft des Bestimmungsknotens eines erstellten
Leitwegs.
-
Die
EOM- und RDY-Bits werden in einem von zwei Formaten ausgetauscht:
(1). ein erstes, in 4B dargestelltes Format ermöglicht das
Einstreuen des EOM-Bits 431 und des RDY-Bits 432 in eine
Datennachricht 430 und (2). ein zweites, in 4C dargestelltes
Format ermöglicht
die Übertragung
des EOM-Bits 441 und des RDY-Bits 442 in Abwesenheit
eines Nachrichtenverkehrs.
-
Das
erste Format enthält
zusätzlich
zu den oben erwähnten
EOM-Bit 431 und RDY-Bit 432 zwei Bits 433 und 434 zum
Anzeigen einer stattfindenden Datennachrichtübertragung und sechzehn Datenbits 435.
Im bevorzugten Ausführungsbeispiel
sind die zwei Bits 433 und 434 auf 0 gesetzt,
um anzuzeigen, daß die
Nachricht eine Datenübertragungsnachricht ist.
-
Das
zweite, als "status
nibble" oder Statuskurzwort
bezeichnete Format weist vier Bits auf, das EOM-Bit 441,
das RDY-Bit 442 und
zwei Bits 443 und 444, die eine Nur-Status-Übertragung
anzeigen. Im bevorzugten Ausführungsbeispiel
sind diese beiden Bits 443 und 443 auf 1 gesetzt.
Während
der Übertragung
des Statuskurzworts wird das EOM-Bit ignoriert. Statuskurzworte
werden von allen Vermittlern bei fehlender Datenübertragung wiederholend übertragen.
-
Das
RDY-Bit wird, wenn es empfangen wird, in jedem Vermittler in einem "Bestimmungsort-fertig"-Register gespeichert
und für
die Flußsteuerung des
Systems wie oben beschrieben benutzt.
-
Wie
oben gesagt, benutzt die Erfindung zwei "Startbits", 433 und 434 oder 443 und 444,
sowohl im Nur-Status- als auch im Datenformat. Zwei Bits werden
benutzt, weil die Nachricht in zwei Hälften durch den Vermittler
verarbeitet wird. Ungeradzahlige Bits werden unabhängig von
den geradzahligen Bits im Vermittler verarbeitet. Dies erlaubt höhere Datentransferraten,
als sie anderenfalls im Gate-Array des bevorzugten Ausführungsbeispiels
möglich
wären.
-
Als
ein Vorteil der Einstreuung von Statusinformationen zwischen die
Datennachrichten in dem erfindungsgemäßen Nachrichtenformat erweist
es sich, daß das
Ende einer Nachricht leicht durch Vermittler im Fluge erkannt werden
kann. Das eliminiert die Notwendigkeit eines Nachrichtengrößenzählers im
Vermittler und entfernt dabei jegliche Begrenzungen für eine maximale
Nachrichtengröße. Folglich können die
Nachrichten in der Erfindung von jeder beliebigen Größe sein.
-
Jede
Nachricht in der Erfindung schließt einen sendenden Knoten und
einen empfangenden Knoten ein. Zwischen zwei Knoten existiert nur
ein Leitweg für
Nachrichten durch das Netzwerk. Die Kombination von Kanälen, die
einen Leitweg bilden, wird definiert durch den Binär-Kubus-Vermittlungsalgorithmus,
wie er durch Herbert Sullivan und T.R. Bashkow in "A Large Scale Homogeneous,
Fully Distributed Parallel Machine", Proceedings of the 4th Annual Symposium
on Computer Architecture, Seiten 105-117, 1977, beschrieben ist. Dieser Algorithmus
ist ferner beschrieben bei C.R. Lang, Jr., "The Extension of Object-Oriented Languages
to a Homogeneous, Concurrent Architecture", Department of Computer Science, California
Institute of Technology, Technical Report No. 5014, Mai 1982. Die
Benutzung eines solchen Binär-Kubus-Algorithmus
garantiert, daß keine
ringförmigen
Leitwege bei der Nachrichtenvermittlung auftreten und verhindert
so ein Auftreten von Blockierungen.
-
Der
Algorithmus besagt, daß,
um Blockierungen zu vermeiden, Nachrichten in einem binären Kubus
in zunehmend höheren
Dimensionen weitergeleitet werden, bis der Bestimmungsort erreicht
ist. Die oben definierte Kanalnumerierung korrespondiert mit diesen
Dimensionen. Die Leitwege können
aus zunehmend höher
numerierten, aber nicht notwendigerweise angrenzenden Kanälen bestehen.
Eine Weiterleitung von Nachrichten von höher numerierten Kanälen zu niedriger
numerierten Kanälen
(oder Kanälen
der gleichen Dimension) ist nicht gestattet. Beispielsweise kann
ein Leitweg aus Kanal 0, Kanal 2, Kanal 3 bestehen, was die Vermittler
der Knoten 0, 1, 5 und 13 einschließt. In diesem Fall ist der
Quellvermittler am Knoten 0, die Zwischenvermittler an den Knoten
1 und 5 und der Bestimmungsortvermittler am Knoten 13.
-
Die
erfindungsgemäße Vermittlungsoperation
kann in vier Phasen eingeteilt werden: Aufstellen eines Leitwegs,
Bestätigung
der Bereitschaft des Bestimmungsknotens zum Empfangen einer Nachricht, Nachrichtenübertragung
und Lösen
der Verbindungen. Um die Vermittlung einer Nachricht zu initiieren, überträgt der Quellknoten
mindestens ein 32-Bit-Wort zu seinem Vermittler. Die 16 Bits geringerer
Ordnung des ersten 32-Bit-Worts enthalten ein Vermittlungssondiersignal.
Das Vermittlungssondiersignal weist Adreßinformationen auf und wird
benutzt, um die den Nachrichtenleitweg bildenden Verbindungen durch
die Zwischenvermittler zu erstellen. Im bevorzugten Ausführungsbeispiel
sind die höherwertigen
acht Bits des Vermittlungssondiersignals auf 0 gesetzt.
-
Die
niederwertigen acht Bits des Vermittlungssondiersignals werden durch
eine Exklusiv-ODER-Operation der binären Adressen des Bestimmungsknotens
und des Quellknotens berechnet. Jedes Bit des Vermittlungssondiersignals
korrespondiert mit einem Kanal, über
welchen die Nachricht vermittelt wird. (Das bevorzugte Ausführungsbeispiel enthält einen
binären
Kubus der siebten Dimension; das achte Bit wird zur Adressierung
des externen I/O-Kanals benutzt.)
-
Das
erste Segment des Leitwegs wird erstellt, wenn der Serialisierer
im Vermittler der Quelle den Ausgangskanal anfordert, der mit dem
Bit niedrigster Ordnung in dem Vermittlungssondiersignal korrespondiert.
Durch die Entscheidungslogik wird zwischen Anforderungen für den gleichen
Kanal durch verschiedene lokale Anforderer entschieden. Die Entscheidungslogik
gestattet jeweils eine Anforderung zu einem Zeitpunkt, wobei sie
ein "round robin"-Zuteilungsschema
benutzt. Wenn der Kanal bewilligt wird, wird das Vermittlungssondiersignal
durch den Quellvermittler ausgesendet, bevor eine Nachrichtenübertragung
stattfindet.
-
Wenn
beispielsweise zu einem Vermittler ein Vermittlungssondiersignal übertragen
wird, in welchem das Bit N das geringwertigste gesetzte Bit ist, wird
der Kanal N angefordert. Wenn die Entscheidungslogik den Kanal N
bewilligt, wird das Vermittlungssondiersignal zu dem Zwischenvermittler übertragen,
der der nächste
Nachbar des Quellknotens auf dem Kanal N ist.
-
Im
bevorzugten Ausführungsbeispiel
speichert der Zwischenvermittler beim Empfangen des Vermittlungssondiersignals
dieses Signal und sondert die höherwertigen
acht Bits (welche alle gleich 0 sind) aus, wodurch ein kurzes Vermittlungssondiersignal
entsteht. Die ausgesonderten Bits werden am Bestimmungsortvermittler
rekonstruiert. Das kurze Vermittlungssondiersignal wird zwischen
den Zwischenvermittlern ausgetauscht, wobei zusätzliche Segmente des Leitwegs
reserviert werden.
-
Die
Zwischenvermittler überprüfen die
Bits N+1 bis 7 des kurzen Vermittlungssondiersignals zur Bestimmung
des geringwertigsten gesetzten Bits. Der mit dem ersten gesetzten
Bit korrespondierende Ausgangskanal wird angefordert, während das
kurze Vermittlungssondiersignal wartet. Wenn der Ausgangskanal bewilligt
ist, wird das kurze Vermittlungssondiersignal zum nächsten Vermittler
des Leitwegs übertragen.
Wie in 5 dargestellt, wiederholt sich dieses Verfahren,
bis das Vermittlungssondiersignal durch den Bestimmungsortvermittler
empfangen wird.
-
Bezugnehmend
auf 5 soll eine Nachricht vom Quellknoten 2 (binäre Adresse
10) 501 zum Bestimmungsknoten 1 (binäre Adresse 01) 503 eines zweidimensionalen
Kubus übertragen
werden. Der Quellknoten 501 überträgt ein Vermittlungssondiersignal
zu seinem Vermittler 511. Wie oben beschrieben enthält das Vermittlungssondiersignal
die relative Adresse von Quell- und Bestimmungsknoten; folglich enthält das Vermittlungssondiersignal
in dem Beispiel gemäß 5 die
Adresse 11 (10 XOR 01 = 11). In diesem Fall korrespondiert das Bit
0, was gleich 1 ist, mit dem Kanal 0. Folglich fordert wie oben
beschrieben das vermittelte Sondiersignal den Kanal 0 zur Übertragung
an.
-
Wenn
dem Vermittlungssondiersignal der Zugriff zum Kanal 0 bewilligt
wird, wird das Vermittlungssondiersignal über Kanal 0 zu dem mit dem
Zwischenknoten 502 in Verbindung stehenden Vermittler 512 gesendet.
Wie oben beschrieben fordert der erfindungsgemäße Vermittlungsalgorithmus
den Vermittler 512 auf, das Vermittlungssondiersignal auf
einem Kanal einer höheren
Ordnung als der des Kanals, auf dem es empfangen wurde, auszusenden. Folglich
beginnt der Vermittler 512 die bitweise Überprüfung der
Bits des Vermittlungssondiersignals mit dem Bit in der Bitposition
1 (das Vermittlungssondiersignal wurde durch den Vermittler 512 auf
Kanal 0 empfangen). Nach dem Auffinden des ersten auf 1 gesetzten
Bits erfolgt eine Anforderung des dem auf 1 gesetzten Bit entsprechenden
Kanals. In diesem besonderen Beispiel ist das erste auf 1 gesetzte
Bit in der Bitposition 1 und eine Anforderung erfolgt für den Kanal
1.
-
Das
Vermittlungssondiersignal wird über
den Kanal 1 zu dem mit dem Bestimmungsknoten 503 in Verbindung
stehenden Vermittler 513 übertragen. Der Vermittler 513 überprüft das Vermittlungssondiersignal
beginnend mit den Bits von höherer
Dimension als der des Kanals, auf dem das Vermittlungssondiersignal
empfangen wurde. Im dargestellten Beispiel sind alle verbleibenden
Bits gleich 0. Folglich erkennt der Vermittler 513, daß das Vermittlungssondiersignal
seinen Endbestimmungsort erreicht hat.
-
Der
Vermittler 513 erweitert das Vermittlungssondiersignal
um acht auf 0 gesetzte Bits, um dessen Originalzustand wiederherzustellen.
Wenn der Vermittler am Bestimmungsort eine Nachricht aufnehmen kann,
signalisiert er ein Bestätigungssignal
(das RDY-Bit).
-
Damit
beginnt die Bestätigungsphase
der Vermittlungsoperation. Die Bestätigungsphase erfordert, daß eine determinierte
Verbindung vom Bestimmungsortvermittler zurück zu dem Quellvermittler zum
Zwecke der Übertragung
der Flußsteuerungsinformationen
hergestellt wird. Diese wird der "Statusleitweg" genannt und folgt exakt durch die gleichen Zwischenknoten
wie der Nachrichtenleitweg, allerdings in der entgegengesetzten
Richtung vom Bestimmungsknoten zum Quellknoten.
-
Wenn
beispielsweise bei einem Zwischenvermittler eine Nachricht vom Eingangskanal
2 zum Ausgangskanal 4 geleitet wird, so wird für den Statusleitweg eine Verbindung
vom Eingangskanal 4 zum Ausgangskanal 2 hergestellt. Die Verbindungen des
Statusleitwegs werden ebenso wie die des Nachrichtenleitwegs für die Dauer
der Nachricht aufrechterhalten.
-
6 veranschaulicht
die Bestätigungsphase
der erfindungsgemäßen Vermittlungsoperation.
In 6 entspricht der Knoten 601 dem Knoten 501 von 5;
der Vermittler 611 entspricht dem Vermittler 511;
der Knoten 602 dem Knoten 502 usw.. Die 7 und 8 weisen ähnliche
Benennungskorrespondenzen auf.
-
Wie
in 6 gezeigt, wird eine Bestätigung vom Vermittler 613 (entspricht
Bestimmungsknoten 1 603) über Kanal 1 zum Zwischenvermittler 612 gesendet.
Der Zwischenvermittler 612 schickt die Bestätigung zum
Ursprungsvermittler 611 über Kanal 0 weiter, wo sie
durch Knoten 2 601 empfangen wird. Für den Fachmann ist es klar,
daß die
RDY-Statusinformation in einem der oben erörterten Formate übertragen
wird. Folglich können Nachrichteninformationen
von einem anderen Ursprungsknoten gleichzeitig mit den Statusinformationen über den
gleichen Kanal übertragen
werden. Wenn es keine Anforderungen zur Benutzung des gleichen Kanals
gibt, wird ein Statuskurzwort (wie oben erörtert) übertragen.
-
Wenn
das RDY-Bit schließlich
den Quellknoten 611 erreicht, beginnt die Nachrichtenübertragungsphase.
Der Quellvermittler kann die Daten kontinuierlich in das Netzwerk
(in dem oben beschriebenen Format) übertragen, bis das Ende der
Nachricht gesendet oder eine "Nicht-bereit"-Anzeige über den Statusleitweg
empfangen wird. Im bevorzugten Ausführungsbeispiel werden die Nachrichten
in den Zwischenvermittlern nicht gepuffert.
-
Wie
man mit Blick auf 7 sieht, wird die Nachrichteninformation
vom Knoten 2 701 zum Vermittler 711 und dann aus
dem Serialisierer des Vermittlers 711 gesendet. Die Machrichteninformation wird
dann über
den reservierten Leitweg (Kanal 0 bis zum Zwischenvermittler 712,
Kanal 1 bis zum Bestimmungsortvermittler 713) übertragen.
Am Vermittler 713 wird die Nachricht dann deserialisiert
und zum Bestimmungsknoten 703 übertragen.
-
Wenn
der Quellvermittler 711 während der Übertragung der Nachricht eine "Nicht-bereit"-Anzeige über den
Eingangskanal 0 empfängt,
bricht er die Übertragung
der Nachricht ab und überträgt Statuskurzworte.
Wenn wieder eine Bereitschaftsanzeige auf dem Eingangskanal 0 empfangen
wird, beginnt der Quellvermittler erneut die Übertragung der Nachricht. Im
bevorzugten Ausführungsbeispiel
speichert der Vermittler des Bestimmungsorts alle Nachrichteninformationen,
welche zu der Zeit unterwegs sind, zu der die "Nicht-bereit"-Anzeige aktiv ist. Folglich bleiben,
wenn eine Nachricht durch eine "Nicht-bereit"-Anzeige gedrosselt
wird, keine Datenbits im Netzwerk gespeichert, sondern in dem FIFO-Pufferspeicher
des Vermittlers am Bestimmungsort. Dieses Verfahren der Drosselung
der Nachrichtenübertragung
durch Empfangen einer Anzeige, daß der Bestimmungsknoten nicht
bereit ist, und durch Unterbrechen der Übertragung der Nachricht in
Antwort auf eine solche Anzeige sichert die Flußsteuerung im erfindungsgemäßen Netzwerk.
-
Nach
Abschluß der Übertragung
einer Nachricht hängt
der Quellvermittler ein Prüfsummenwort an
die Botschaft an. Das Datenformat, welches das Prüfsummenwort
enthält,
weist ein gesetztes EOM-Bit auf. Die Prüfsumme liefert ein Mittel zum Überprüfen der
Vollständigkeit
der Nachricht, um ggf. auftretende Hardwarefehler zu erkennen.
-
Wie
in 8 gezeigt, veranlaßt die Übertragung eines Wortes mit
gesetztem EOM-Bit den Quellvermittler 811 den für die Nachricht
reservierten Ausgangskanal (Kanal 0) freizugeben. An jedem Zwischenvermittler
im Leitweg (Vermittler 812 im dargestellten Beispiel) wird
der für
die Nachrichten reservierte Kanal freigegeben, wenn das Wort mit
dem gesetzten EOM-Bit übertragen
wurde. Diese Kanäle sind
dann für
die Verwendung für
andere Nachrichten frei.
-
Wenn
ein Wort mit gesetztem EOM-Bit am Vermittler 813 des Bestimmungsorts
empfangen wird, wird angenommen, daß die begleitende Dateninformation
die Prüfsumme
für die
Nachricht ist. Die Prüfsummeninformation
wird zum Überprüfen der Vollständigkeit
der Nachricht benutzt. Da die Prüfsummeninformation
kein Teil der Originalnachricht ist, wird sie durch den Vermittler 813 am
Bestimmungsort abgeschält.
Das Ergebnis wird für
weitere Untersuchungen am Bestimmungsknoten 803 gespeichert.
-
Wie
weiter oben beschrieben, werden die Strobe-Leitungen benutzt, um
die Datenleitungen zu bestätigen,
und auch, um eine Taktquelle für
einen nachfolgenden Vermittler zur Verfügung zu stellen. Sowohl die
ansteigenden als auch die fallenden Flanken werden benutzt, um die
Daten zu bestätigen.
Die ansteigenden und fallenden Flanken können als geradzahlige und ungeradzahlige
Flanken bezeichnet werden, da die Richtung der Übertragung des Strobe-Signals äquivalent
in beiden Richtungen realisiert werden kann. 9 stellt
ein System dar, das ein Strobe-Signal in dieser Weise benutzt. In 9 ist eine
Mehrzahl von Latch-Schaltungen oder Auffangspeichern (901, 902),
dargestellt. Diese Speicher werden benutzt, um das Vermittlungssondiersignal so
zu halten, wie es durch den Vermittler empfangen wurde. Jede Latch-Schaltung
ist, wie in 9 gezeigt, mit einer Strobe-Leitung 903 und
einer Datenleitung 904 gekoppelt. Die Vielzahl der Latch-Schaltungen
(901, 902) ist logisch in zwei Reihen eingeteilt;
eine ungeradzahlige Reihe 901, die durch eine ungeradzahlige
Flanke des auf der Strobe-Leitung 903 erscheinenden Strobe-Signals
getriggert wird, und eine geradzahlige Reihe 902, die auf
eine geradzahlige Flanke des Strobe-Signals getriggert wird. Auf diese Weise
können
die Bits des Vermittlungssondiersignals sowohl bei ansteigenden
als auch fallenden Flanken des Strobe-Signals gehalten und gespeichert
werden. Das Strobe-Signal auf Strobe-Leitung 903 wird verstärkt, um
ein Strobe-Ausgangssignal 905 herzustellen, welches mit
jedem der Vermittler des Netzwerks gekoppelt ist. Dieses gemeinsame Strobe-Signal
wird benutzt, um eine synchrone Datenübertragung zwischen den Vermittlern
zu schaffen.
-
Das
System zum Verbinden einer Vielzahl von Vermittlern mit einer gemeinsamen
Strobe-Leitung, wie es in 9 dargestellt
ist, kann Anlaß für eine Einschränkung der
Anzahl der so verbundenen Vermittler sein. Nachdem das Strobe-Signal
auf Strobe-Leitung 903 an
eine Anzahl von Vermittlern angelegt und durch sie verstärkt wurde,
kann das Strobe-Signal dem Impulsschwund unterworfen sein. Der Impulsschwund
tritt auf, wenn ein Signal durch Geräte zwischengespeichert wurde,
welche unterschiedliche Anstiegs- und Abfallzeiten haben. Der Impulsschwund
kann eine schwere Asymmetrie in dem Strobe-Signal hervorrufen und
schließlich
Datenfehler bewirken.
-
In
den 10 und 11 ist
ein verbessertes Verfahren zur Lieferung eines gemeinsamen Strobe-Signals
für eine
Vielzahl von Vermittlern dargestellt. Diese verbesserten Mittel
und Verfahren werden hier als Strobe-Flankenwechsel-Regenerierung
bezeichnet. Die Schaltung zur Regenerierung der wechselnden Flan ken
beseitigt das Problem des Impulsschwunds durch Regenerierung jeder
zweiten Flanke des Strobe-Signals beim Durchlaufen jedes Vermittlers.
Alle geradzahligen Flanken des Strobe-Signals werden modifiziert
durch die Vermittler-Hardware, während
die ungeradzahligen Flanken des Strobe-Signals unverändert zum
nächsten
Vermittler weitergesendet werden. Für den Fachmann ist es klar,
daß die
ungeradzahligen Flanken mit den ansteigenden Flanken eines Signals
zusammenfallen können,
während
die geradzahligen Flanken mit den fallenden Flanken eines Signals
korrespondieren. In ähnlicher
Weise kann die umgekehrte Konfiguration äquivalent realisiert werden;
d.h., geradzahlige Flanken können
mit ansteigenden Flanken eines Signals zusammenfallen, während ungeradzahlige
Flanken mit den fallenden Flanken eines Signals korrespondieren.
-
10 stellt
ein erstes Ausführungsbeispiel der
Strobe-Flankenwechsel-Regenerierung
dar. 11 stellt ein zweites alternatives Ausführungsbeispiel
dar.
-
In 10 ist
eine Vielzahl von Latch-Schaltungen 1001, 1002 gezeigt.
Diese Latch-Schaltungen sind ähnlich
den in 9 dargestellten und werden zum Empfangen und Speichern
des Vermittlungssondiersignals benutzt. Wie auch in 9 ist
die Datenleitung 904 mit jeder Latch-Schaltung gekoppelt.
-
Die
Strobe-Leitung 903 ist mit den Latch-Schaltungen 1001 und 1002 und
mit einer Generatorschaltung für
einen synthetischen Takt 1003 in zwei äquivalenten Weisen, wie sie
in einem ersten Ausführungsbeispiel
in 10 und in einem zweiten Ausführungsbeispiel in 11 dargestellt
sind, verbunden. Das verbesserte System weist eine Generatorschaltung
für einen
synthetischen Takt 1003 auf, die zum Modifizieren des über Strobe-Leitung 903 übertragenen
Strobe-Signals benutzt wird. Der Aufbau und die Arbeitsweise des
synthetischen Taktgenerators 1003 ist unten beschrieben
und in 12 dargestellt.
-
Im
folgenden wird wieder auf 10 Bezug genommen.
Die Strobe-Leitung 903 ist direkt mit den ungeradzahligen
Latch- Schaltungen 1001 und
direkt mit dem synthetischen Taktgenerator 1003 gekoppelt.
Die Strobe-Leitung 903 ist auch direkt verbunden mit der
ersten geradzahligen Latch-Schaltung des Satzes von geradzahligen
Latch-Schaltungen 1002. Die verbleibenden geradzahligen
Latch-Schaltungen 1002 sind mit der Ausgangsseite 1004 der synthetischen
Taktgeneratorschaltung 1003 gekoppelt. Durch Koppeln der
Latch-Schaltungen mit der Strobe-Leitung 903, wie es in
in 10 dargestellt ist, treiben die ungeradzahligen
Flanken des Strobe-Signals die Latch-Schaltungen 1001 direkt
(wie sie auf der Strobe-Leitung 903 empfangen wurden) an,
während
die modifizierten geradzahligen Flanken, die durch den synthetischen
Taktgenerator 1003 hergestellt wurden, alle außer der
ersten der geradzahligen Latch-Schaltungen 1002 antreiben.
In ähnlicher
Weise werden die modifizierten geradzahligen Flanken des Strobe-Signals,
wie sie durch den synthetischen Taktgenerator 1003 ausgegeben
werden, verstärkt,
um ein Strobe-Ausgangssignal 1005 herzustellen, welches
dann zum nächsten
Vermittler gesendet wird. Dieses Verfahren der Modifizierung des Strobe-Signals
benutzt eine wechselnde Flankenregeneration, die den Impulsschwund
eliminiert.
-
In 11 ist
ein zweites Ausführungsbeispiel
der Strobe-Schaltung
dargestellt. In 11 ist die Strobe-Leitung 903 direkt
mit dem synthetischen Taktgenerator 1003 verbunden. Zusätzlich ist
die Strobe-Leitung direkt mit der ersten ungeradzahligen Latch-Schaltung
des Satzes von ungeradzahligen Latch-Schaltungen 1001 und der ersten
geradzahligen Latch-Schaltung des Satzes der geradzahligen Latch-Schaltungen 1002 verbunden.
Anschließend sind
alle Latch-Schaltungen auf der ungeradzahligen Seite 1001 und
auf der geradzahligen Seite 1002 mit der Ausgangsseite 1004 des
synthetischen Taktgenerators 1003 verbunden. Wie es in
diesem zweiten Ausführungsbeispiel
konfiguriert und in 11 dargestellt ist, wird sowohl
die unmodifizierte, ungeradzahlige Flanke des Strobe-Signals als
auch die modifizierte, geradzahlige Flanke des Strobe-Signals durch
die Ausgangsseite 1004 des synthetischen Taktgenerators 1003 angelegt.
Dieses zweite Ausführungsbeispiel
ist funktionell dem ersten in 10 gezeigten
Ausführungsbeispiel äquivalent.
Das modifizierte Strobe-Signal wird verstärkt, um ein Strobe-Ausgangssignal 1005 herzustellen,
welches zum nächsten
Vermittler weitergeleitet wird. Bei Benutzung entweder der Konfiguration
des ersten oder der des zweiten Ausführungsbeispiels verhindert
der synthetische Taktgenerator 1003 eine Verfälschung der
durch die Latch-Schaltungen 1001 und 1002 empfangenen
Daten durch einen Impulsschwund des Strobe-Signals in den Vermittlern
des Netzwerks.
-
In 12 ist
ein bevorzugtes Ausführungsbeispiel
des Generators des synthetischen Taktes 1003 dargestellt.
Die Schaltung 1003 schließt Verzögerungsbauelemente, Flipflop-Bauelemente
und logische Bauelemente ein, welche jeweils unabhängig voneinander
bekannt sind. Die Strobe-Leitung 903 liefert das einzige
Eingangssignal für
den synthetischen Taktgenerator 1003. Im bevorzugten Ausführungsbeispiel
der Erfindung ist das auf der Strobe-Leitung 903 anliegende
Strobe-Signal ein low-aktives Signal, welches einen aktiven Impuls
bei Auftreten einer fallenden Flanke initiiert. Für den Fachmann ist
es klar, daß ein äquivalentes
alternatives Ausführungsbeispiel
realisiert werden kann, bei dem das Strobe-Signal ein high-aktives
Signal ist, das einen aktiven Impuls durch eine fallende Flanke
initiiert.
-
Anfänglich sind
die Flipflop-Bauelemente FF1 1203 und FF2 1204 im
zurückgesetzten
Zustand nachdem ein Rücksetzsignal 1320 an
den Löscheingang
der beiden Flipflops 1203 und 1204 angelegt wurde.
Sowohl FF1 als auch FF2 gibt ein auf low gesetztes Q-Signal aus,
wenn es zurückgesetzt
ist. Da der Q-Ausgang 1215 des FF2 1204 low ist
und das Signal auf Leitung 1211 anfänglich high ist, ist der Ausgang
des Gatters 1205 low. Wenn das Reset-Signal 1320 entfernt wird (auf
low geht), wird folglich der Löscheingang 1216 des
FF1 1203 inaktiv. Ein Zeitablaufdiagramm des Rücksetzsignals 1320 ist
in 13 dargestellt.
-
Wiederum
bezugnehmend auf 12 und 13 ist
das Strobe-Signal auf der Strobe-Leitung 903 anfänglich in
einem high-Zustand. Folglich verbleibt, nachdem das Strobe-Signal
am Takteingang von FF1 1203 invertiert wurde, der Ausgang
Q 1212 des FF1 1203 in einem zurückgesetzten
Zustand. Die Verzögerungskomponenten 1201 und 1202 werden zur
Verzögerung
sowohl der ansteigenden als auch der fallenden (ungeradzahligen
und geradzahligen) Flanken des Signals benutzt, wenn sie durch diese Komponenten
hindurchgehen. Die Verzögerungskomponenten 1201 und 1202 sind
dem Fachmann gut bekannt.
-
Wenn
eine fallende Flanke 1302 auf der Strobe-Leitung 903 auftritt,
empfangen beide Verzögerungskomponenten 1201 und 1202 die
fallende Flanke etwa zur gleichen Zeit. Nach einer Verzögerung von
j Nanosekunden (j und k sind positive Zahlen) wechselt das an FF1 1203 angelegte
Taktsignal 1210 in einen aktiven Zustand, was den Q-Ausgang 1212 von
FF1 1203 zu einem Wechsel in den high-Zustand veranlaßt, wie
das durch die ansteigende Flanke 1304 in 13 gezeigt
ist.
-
Wiederum
bezugnehmend auf 12 wird das Ausgangssignal Q 1212 des
FF1 1203 ebenfalls invertiert und durch den Takteingang
von FF2 1204 empfangen. Wenn der Ausgang Q 1212 des
FF1 1203 in einen low-Zustand geht, wird der Takteingang 1212 für FF2 1204 aktiv.
Wenn jedoch der Löscheingang 1211 zum
FF2 1204 high ist, verbleibt der Ausgang Q 1215 des
FF2 1204 low.
-
Nach
einer Verzögerung
von j + k Nanosekunden in bezug auf den Zeitpunkt der fallenden Flanke 1302 des
Strobe-Signals 903 erscheint eine fallende Flanke auf der
Ausgangsseite 1211 des Verzögerungsgliedes 1202.
Dieses Signal mit fallender Flanke auf Leitung 1211 wird
sowohl an das Gatter 1205 als auch an den Löscheingang
des FF2 1204 angelegt. Wenn das Signal auf Leitung 1211 in
einen low-Zustand wechselt, sind beide Eingänge des Gatters 1205 low.
Da beide Eingänge
des Gatters 1205 low sind, wechselt das durch das Gatter 1205 erzeugte
Ausgangssignal 1214 in einen high-Zustand. Dieser high-Zustand
auf Leitung 1214 wird durch Gatter 1241 weitergeleitet
und dient zur Löschung des
FF1 1203, wobei ein Wechsel des Q-Ausgangssignals 1212 des
FF1 1203 von einem high-Zustand zu einem low-Zustand bewirkt
wird. Folglich erscheint eine fallende Flanke am Ausgang 1213 des
synthetischen Taktgenerators. Diese synthetische fallende Flanke 1306 ist
in 13 dargestellt. Da der Löscheingang des FF2 1204 inaktiv
ist und der Takteingang 1212 jetzt aktiv, wechselt der
Q-Ausgang 1215 des FF2 1204 in einen high-Zustand.
Dieser Wechsel dient dazu, das Löschsignal 1216 des
FF1 1203 inaktiv zu machen, so daß es nicht aktiv ist, wenn
der nächste
ansteigende Wechsel auf Leitung 1210 empfangen wird.
-
Faßt man die
Arbeitsweise der in 12 dargestellten Schaltung zusammen,
bewirkt folglich eine fallende Flanke auf Strobe-Leitung 903 ein
Ansteigen des Ausgangssignals Q 1212 des FF1 1203 nach
j Nanosekunden. Dies kann auftreten, weil der Löscheingang des FF1 1203 gesperrt
ist. Nach j+k Nanosekunden wechselt das auf Leitung 1211 an
das Gatter 1205 angelegte Signal in einen low-Zustand, wobei
der Löscheingang 1216 des
FF1 1203 gesetzt wird. Dieses Löschsignal dient zum Rücksetzen
von FF1 1203, was das Erscheinen der synthetischen fallenden
Flanke auf der synthetischen Strobe-Ausgangsleitung 1213 hervorruft.
FF2 1204 entfernt dann das Löschsignal von FF1 1203,
was sichert, daß FF1 1203 auf
den nächsten
Wechsel des Strobe-Signals von low nach high antworten kann.
-
Unter
Benutzung eines bevorzugten Ausführungsbeispiels
der in 12 dargestellten und oben beschriebenen
synthetischen Taktgeneratorschaltung kann ein synchrones Strobe-Signal
an eine unbegrenzte Anzahl von Vermittlern in einem Netzwerk mit
paralleler Verarbeitung ohne die Gefahr eines Datenverlustes infolge
einer auf der Strobe-Leitung auftretenden Impulsschwundbedingung
angelegt werden.
-
Somit
wurde ein verbessertes Parallelverarbeitungscomputersystem mit einer
Takt-Flankenwechsel-Regenerierung beschrieben.