-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf einen Schalter
(Switch) für
die Wegewahl (Routing) von Daten zwischen Netzwerkstationen und
insbesondere auf einen Netzwerk-Switch,
der jede Netzwerkstation zu einer Broadcast- oder Multicast-Datenübertragung
an alle oder an eine ausgewählte
Gruppe von anderen Netzwerkstationen befähigt.
-
Beschreibung des Stands der
Technik
-
Rechner-Netzwerke überführen Daten
zwischen Rechnern oder anderen Arten von Netzwerkstationen. Ethernet-Systeme
vom Typ 10BASE-T verwenden z.B. Gruppen aus Leitern mit verdrilltem
Aderpaar in einer Stern-Netzwerk-Topologie, um Netzwerkstationen
mit einem zentralen Knoten (Hub) oder einem Schalter (Switch) zu
verbinden. Ein Zentralknoten vom Typ 10BASE-T ist einfach ein Leitungsverstärker bzw.
Zwischenverstärker,
der ein Datenpaket von irgendeiner Station empfängt und dieses an alle anderen
Stationen wieder überträgt. Ein
Anfangskennsatz (Header) in dem Datenpaket gibt die beabsichtigte
Bestimmungsstation für das
Paket an, und jede Netzwerkstation schaut sich den Paket-Anfangskennsatz
an, um zu bestimmen, ob sie ein hereinkommendes Paket akzeptieren
oder ignorieren soll.
-
Netzwerk-Zentralknoten
sind besonders gut geeignet, um Broadcast- und Multicast-Übertragungen
zu erleichtern. In einem Netzwerk mit Broadcast-Fähigkeit
akzeptiert jede Netzwerkstation nicht nur hereinkommende Datenpakete,
die an ihre eigene einmalige Netzwerkadresse gerichtet sind, sondern
akzeptiert auch Datenpakete, die an eine universelle "Broadcast"-Adresse gerichtet
sind. In einem Netzwerk mit Multicast-Fähigkeit vergibt das Netzwerk
mehrere Adressen als "Multicast"-Adressen. Jede Netzwerkstation akzeptiert
hereinkommende Daten, die nicht nur an ihre eigene einmalige Adresse
gerichtet sind, sondern kann auch hereinkommende Daten akzeptieren,
die an eine oder mehrere (wenn auch nicht notwendigerweise alle)
der Multicast-Adressen gerichtet ist. Dies ermöglicht es, ein Netzwerk in
mehrere "virtuelle
Netzwerke" zu organisieren,
in welchen jede Station Multicast-Übertragungen von anderen Stationen
innerhalb ihres eigenen virtuellen Netzwerks, jedoch nicht von Stationen,
die anderen virtuellen Netzwerken zugeordnet sind, akzeptiert. So kann
z.B. ein Einzelnetzwerk alle Stationen in einer großen Firma
miteinander verbinden, während
Stationen in gesonderten Abteilungen, wie z.B. Ingenieurwesen, Marketing
und Buchhaltung, gesonderten "virtuellen Netzwerken" zugeordnet sind.
Eine Multicast-Übertragung
von einer Abteilung wird nur von Stationen derselben Abteilung akzeptiert.
-
Ein
Netzwerk-Zentralknoten vereinfacht ein Broadcast- und Multicast-Netzwerk
ohne weiteres, weil er jede Übertragung
von irgendeiner Netzwerkstation an jede andere Netzwerkstation sendet.
Eine übertragende Netzwerkstation,
die ein Datenpaket broadcasten oder multicasten will, richtet daher
das Paket einfach an die geeignete Broadcast- oder Multicast-Adresse und muss
die Pakete nicht wiederholt und gesondert an die verschiedenen Netzwerkstation-Adressen
senden. In einem System, das einen Netzwerk-Zentralknoten (Hub) verwendet,
blockiert jedoch eine Übertragung
von irgendeiner Station die Übertragungen
von allen anderen Stationen. Daher kann nur eine Netzwerkstation
ein Datenpaket zu irgendeiner gegebenen Zeit übertragen. Außerdem muss
jede Netzwerkstation jedes auf dem Netzwerk übertragene Paket überprüfen, obwohl
ein Großteil
des Datenverkehrs an einen anderen Ort gerichtet ist.
-
Ein
Netzwerk-Switch routet ein Datenpaket nur zu seiner Bestimmungsstation,
so dass jede Netzwerkstation nur den an sie gerichteten Paketverkehr
empfängt.
Ein Netzwerk-Switch enthält
Eingangs- und Ausgangsanschlüsse
zum Empfangen und Senden von Paketen von und zu Netzwerkstationen
sowie einen Umschaltmechanismus, wie z.B. einen Koppelpunkt-Schalter,
zum selektiven Routen jedes hereinkommenden Pakets von einem Eingangsanschluss
zu dem passenden Ausgangsanschluss. Der Eingangsanschluss legt den
Bestimmungs-Ausgangsanschluss fest aufgrund der in dem Paket-Anfangskennsatz
enthaltenen Wegewahl-Daten (Routing-Daten) und verlangt dann eine
Verbindung zwischen dem Eingangsanschluss und dem Bestimmungs-Ausgangsanschluss.
Wenn die Verbindung hergestellt ist, sendet der Eingangsanschluss
das Paket über
den Koppelpunkt-Schalter an den Ausgangsanschluss. Ein Netzwerk-Switch
kann "nicht-blockierend" sein und erlaubt
jeder Netzwerkstation das Senden eines Datenpakets an irgendeine
andere Netzwerkstation, die momentan kein Datenpaket von einer anderen
Station empfängt.
Somit können
mehrere Netzwerkstationen zur selben Zeit Daten übertragen.
-
Ein
Hauptnachteil bei Netzwerk-Switches des Stands der Technik besteht
darin, dass sie mit Broadcast-Übertragungen
nicht effizient umgehen. Wenn ein Eingangsanschluss eines Netzwerk-Switches des Stands
der Technik ein zu einer Broadcast-Adresse gerichtetes Paket empfängt, gibt
es zwei Optionen. Die erste Option des Eingangsanschlusses besteht
darin, das Broadcast-Paket zu halten und einen gleichzeitigen Zugang
zu jedem Ausgangsanschluss anzufordern. Wenn er den Zugang zu allen
Ausgangsanschlüssen
erhalten hat, leitet der Eingangsanschluss das Broadcast-Paket gleichzeitig
an alle Ausgangsanschlüsse
weiter und gibt dann die Ausgangsanschlüsse frei. Der Nachteil dieser
Vorgehensweise besteht darin, dass sie zwar Zugangsrechte zu allen
Ausgangsanschlüssen
erhält,
der Eingangsanschluss jedoch die Paket-Übertragung zu einigen Ausgangsanschlüssen unter
Umständen
für eine
viel längere
Zeit blockiert als benötigt
wird, um das Broadcast-Paket zu ihnen zu übertragen.
-
Die
zweite Option des Eingangsanschlusses besteht darin, den Zugang
zu jedem Ausgangsanschluss gesondert zu vermitteln und das Broadcast-Paket
gesondert zu jedem Ausgangsanschluss immer dann zu senden, wenn
der Ausgangsanschluss verfügbar
wird. Diese Vorgehensweise verringert die Menge an Zeit, während der
der Eingangsanschluss die Ausgangsanschlüsse blockiert, doch muss der
Eingangsanschluss das Paket mehrere Male übertragen und ist unter Umständen nicht
in der Lage, andere Pakete von der Quellenstation weiterzuleiten,
bis das Broadcast-Paket an alle Ausgangsanschlüsse ausgesendet worden ist.
-
Man
benötigt
daher einen Netzwerk-Switch, der einem Eingangsanschluss gestattet,
ein Broadcast-Paket an alle Ausgangsanschlüsse rasch weiterzuleiten, ohne
Paket-Übertragungen
von anderen Eingangsanschlüssen
zu blockieren.
-
Die
US-5487063 offenbart eine
entfernte Station zum Konzentrieren und Verteilen von Information
von und zu Abonnenten und zum Verwenden eines Verteilungsschalters
für eine
Punkt-zu-Mehrpunkt-Verbindung und
eines Verbindungs- und Verteilungsschalters für eine Punkt-zu-Punkt-Verbindung.
Eine eingegebene Zelle wird je nach dem in der Zelle enthaltenen Identifizierer
entweder mittels des Konzentrations- und Verteilungsschalters für die Punkt-zu-Punkt-Verbindung
geschaltet oder mittels des Verteilungsschalters für die Punkt-zu-Multipunkt-Verbindung
verteilt.
-
Die
US-5179551 offenbart ein
Multicast-Switch-Symbol, das zwei mehrstufige Switch-Netzwerke aufweist.
-
Die
US-50051567 offenbart einen
Multicast-Switch, der ein optisches Stern-Netzwerk aufweist, das
einen Stern-Koppler enthält
und die Eingangsanschlüsse
und Ausgangsanschlüsse
des Schalters (Switch) verbindet. Es wird ein elektronisches Netzwerk
verwendet, um das optische Netzwerk zu steuern.
-
Zusammenfassung der Erfindung
-
Ein
Netzwerk-Switch für
die Wegewahl (Routing) von Unicast-Datenübertragungen (Punkt-zu-Punkt-Datenübertragungen)
und Broadcast-Datenübertragungen
(Punkt-zu-Mehrpunkt-Datenübertragungen)
zwischen Netzwerkstationen, wobei jede Unicast-Datenübertragung
zu einer ausgewählten
Station der Netzwerkstationen geleitet wird und wobei eine Broadcast-Datenübertragung
zu einer Vielzahl der Netzwerkstationen geleitet wird, wobei der
Netzwerk-Switch aufweist:
Wegewahlmittel mit einer Vielzahl
von Eingangsleitungen (V0–V23)
zum Empfangen von Unicast- und Broadcast-Datenübertragungen und einer Vielzahl
von Ausgangsleitungen (H0–H23);
gekennzeichnet
durch
eine Broadcast-Übertragungsleitung
(BC);
ein Mittel für
die selektive Wegewahl einer Unicast-Datenübertragung, die an irgendeiner
der Eingangsleitungen ankommt, zu irgendeiner der Ausgangsleitungen
und zur Wegewahl einer Broadcast-Datenübertragung, die an irgendeiner
der Eingangsleitungen ankommt, zu der Broadcast-Übertragungsleitung;
eine
Vielzahl von Eingangsanschlüssen
(RP0–RP23),
die jeweils mit einer entsprechenden Leitung der Eingangsleitungen
und mit einer entsprechenden Station der Netzwerkstationen verbunden
sind, zum Empfangen von Unicast- und Broadcast-Datenübertragungen von einer entsprechenden
Netzwerkstation und zum Weiterleiten der empfangenen Datenübertragungen
an das Wegewahlmittel über
die entsprechende Eingangsleitung;
und
eine Vielzahl von
Ausgangsanschlüssen
(TP0–TP23),
die jeweils mit einer entsprechenden Leitung der Ausgangsleitungen
verbunden sind, zum Empfangen von Unicast-Datenübertragungen, die durch das
Wegewahlmittel dorthin geleitet wurden, und die jeweils mit der
Broadcast-Übertragungsleitung
verbunden sind, zum Empfangen von Broadcast-Datenübertragungen,
die durch das Wegewahlmittel dorthin geleitet werden, und die jeweils
empfangene Unicast- und Broadcast-Datenübertragungen zu einer entsprechenden
Station der Netzwerkstationen weiterleiten.
-
Weitere
Merkmale und Gesichtspunkte der vorliegenden Erfindung sind in den
abhängigen
Ansprüchen
definiert.
-
Kurzbeschreibung der Zeichnung(en)
-
1 zeigt
einen Schalter bzw. Switch für
ein lokales Netzwerk (LAN-Switch) gemäß der vorliegenden Erfindung
für die
Wegewahl serieller Datenpakete zwischen bis zu 24 Netzwerkstationen;
-
2 zeigt
einen Eingangsanschluss von 1 ausführlicher
in Form eines Blockdiagramms;
-
3 zeigt
einen Ausgangsanschluss von 1 ausführlicher
in Form eines Blockdiagramms;
-
4 ist
ein Zustandsdiagramm, das einen Betrieb mit der Broadcast-Anschlusssteuerung 103 von 3 zeigt;
-
5 zeigt
in Form eines Blockdiagramms ein Adressen-Abbildungssystem, das durch den Netzwerk-Switch
von 1 verwendet wird; und
-
6 zeigt
in Form eines Blockdiagramms ein Vermittlungssystem, das von dem
Netzwerk-Switch von 1 verwendet wird.
-
Beschreibung der bevorzugten
Ausführungsbeispiele
-
1 zeigt
einen Schalter bzw. Switch 10 für ein lokales Netzwerk (LAN-Switch)
gemäß der vorliegenden
Erfindung für
die Wegewahl (Routing) von Datenübertragungen
zwischen bis zu 24 Netzwerkstationen (nicht gezeigt). Der Switch 10 empfängt Übertragungen
in Form von Datenpaketen von jeder Netzwerkstation über einen
Bus von seriellen Eingabe-Bussen RX0–RX23 und leitet sie über einen
entsprechenden Bus von Ausgangs-Bussen TX0–TX23 zu der Netzwerkstation
weiter. Der Netzwerk-Switch 10 enthält eine Gruppe von Eingangsanschlüssen RP0–RP23, die
jeweils hereinkommende Pakete empfangen, die auf einem entsprechenden
Bus von Eingabe-Bussen RX0–RX23
ankommen, sowie eine Gruppe von Ausgangsanschlüssen TP0–TP23, die jeweils dazu bestimmt
sind, um eine Übertragung
nach außen
auf einem entsprechenden Bus der Ausgangs-Busse TX0–TX23 weiterzuleiten.
Ein Koppelpunkt-Schalter 12 leitet jedes Paket, das von
den Eingangsanschlüssen
RP0–RP23
empfangen wird, an die geeigneten Ausgangsanschlüsse TP0–TP23 weiter.
-
Umgang mit Unicast-Paketen
-
Ein "Unicast"-Datenpaket, das
an einem Eingangsanschluss von einer Quellenstation ankommt, enthält eine
Netzwerkadresse, die eine spezielle Ziel-Netzwerkstation kennzeichnet,
an welche das Paket gerichtet ist. Wenn ein Unicast-Paket an einem
Anschluss der Eingangsanschlüsse
RP0–RP23
ankommt, speichert der Eingangsanschluss das Paket und bestimmt
aus der Netzwerkadresse den speziellen Ausgangsanschluss, an den
das Paket weitergeleitet werden soll. Der Eingangsanschluss kommuniziert
dann mit einer Vermittler-Sequenziervorrichtung 22 über einen
Bus (GLOBAL), wobei der Eingangsanschluss eine Verbindung durch
den Schalter 12 zu dem Ziel-Ausgangsanschluss verlangt.
Die Vermittler-Sequenziervorrichtung 22 kommuniziert auch
mit den Ausgangsanschlüssen über den
GLOBAL-Bus, um zu bestimmen, wann jeder Ausgangsanschluss "im Leerlauf ist" (derzeit kein Datenpaket
empfängt).
Wenn der verlangte bzw. angefragte Ausgangsanschluss im Leerlauf
ist, erstellt die Vermittler-Sequenziervorrichtung 22 die
verlangte bzw. angefragte Verbindung durch den Schalter 12 und
signalisiert dann dem verlangenden Eingangsanschluss, dass er mit
dem Übertragen
des Pakets zu dem Ziel-Ausgangsanschluss über den Schalter 12 beginnen
kann. Jeder Eingangsanschluss RP0–RP23 ist mit dem Schalter 12 über eine
entsprechende Leitung von Schalter-Eingangsleitungen V0–V23 verbunden
und überträgt das Datenpaket über die
entsprechende Eingangsleitung zu dem Schalter 12. Jeder
Ausgangsanschluss ist über
eine entsprechende Schalter-Ausgangsleitung H0–H23 mit dem Schalter 12 verbunden.
Der Schalter 12 leitet jedes Unicast-Datenpaket, das auf einer der Eingangsleitungen
V0–V23
ankommt, über
seine entsprechende Schalter-Ausgangsleitung H0–H23 zu dem geeigneten Ausgangsanschluss
weiter. Nachdem der Ausgangsanschluss das Unicast-Paket empfangen
hat, leitet er es an die Ziel-Netzwerkstation weiter.
-
Umgang mit Broadcast-Paketen
-
Ein "Broadcast"-Datenpaket, das
an einem Eingangsanschluss von einer Quellenstation ankommt, enthält Wegleitungs-Daten
(Routing-Daten), die aufzeigen, dass das Paket an alle (oder eine
Teilmenge von allen) Netzwerkstationen und nicht an eine spezielle
Netzwerkstation gerichtet ist. Wenn ein Broadcast-Paket an einem der
Eingangsanschlüsse
RP0–RP23
ankommt, speichert der Eingangsanschluss das Paket und bestimmt
die Eigenart des Pakets aus den Wegleitungs-Daten. Gemäß der vorliegenden
Erfindung hat der Schalter 12 eine zusätzliche "Broadcast"-Ausgangsleitung BC, die gemeinsam mit
allen Ausgangsanschlüssen TP0–TP23 verbunden
ist. Der Eingangsanschluss, der ein Broadcast-Paket empfängt, kommuniziert
mit der Vermittler-Sequenziervorrichtung 22 über den
GLOBAL-Bus und verlangt eine Verbindung zu der Broadcast-Übertragungsleitung
BC durch den Schalter 12. Wenn der BC-Bus im Leerlauf ist
(im Moment keine Paketdaten befördert),
erstellt die Vermittler-Sequenziervorrichtung 22 ein Verbindung
durch den Schalter 12 zwischen der Eingabeleitung V0–V23 von
dem anfragenden Eingangsanschluss und dem BC-Bus. Die Sequenziervorrichtung 23 signalisiert
dem anfragenden Eingangsanschluss dann, dass er damit beginnen kann,
das Broadcast-Paket gleichzeitig an alle Ausgangsanschlüsse TP0–TP23 über den
Schalter 12 und die Broadcast-Leitung BC weiterzuleiten.
Alle Ausgangsanschlüsse
TP0–TP23
empfangen und speichern gleichzeitig das auf der BC-Leitung ankommende
Broadcast-Paket. Jeder Ausgangsanschluss leitet das Broadcast-Paket gesondert
zu der Netzwerkstation weiter, die er bedient.
-
Jeder
Ausgangsanschluss TP0–TP23
hat somit zwei Verbindungen zum Schalter 12: eine entsprechende
Verbindung der Leitungen H0–H23
zum Empfangen einer Unicast-Paketübertragung, die nur zu der durch
den Anschluss bedienten Netzwerkstation gerichtet ist, und die BC-Leitung
zum Empfangen von Broadcast-Übertragungen.
Mit gesonderten Eingängen
für Broadcast-
und Unicast-Übertragungen
kann jeder Ausgangsanschluss gleichzeitig beide Arten der Übertragungen
empfangen und speichern und dann jede Übertragung abwechselnd zu der
entsprechenden Netzwerkstation sequenziell weiterleiten. Somit kann
jeder Eingangsanschluss RP0–RP23
eine Broadcast-Übertragung
gleichzeitig an alle Ausgangsanschlüsse TP0–TP23 weiterleiten, obwohl
einer oder mehrere der Ausgangsanschlüsse damit beschäftigt ist,
eine Unicast-Übertragung
von einem anderen Anschluss zu empfangen. Umgekehrt kann jeder Eingangsanschluss
eine Unicast-Übertragung
an alle Ausgangsanschlüsse
senden, obwohl alle Ausgangsanschlüsse momentan damit beschäftigt sind,
eine Broadcast-Übertragung
von einem anderen Eingangsanschluss zu empfangen.
-
Adressen-Abbildung
-
Die
Eingangsanschlüsse
RP0–RP23
greifen durch einen Abbildungsbus (MAPPING) auf ein Adressen-Abbildungssystem 26 zu.
Das Abbildungssystem 26 setzt die Netzwerkadresse jeder
Netzwerkstation mit dem speziellen Ausgangsanschluss TP0–TP23 in
Beziehung, mit dem die Netzwerkstation verbunden ist. Wenn ein Eingangsanschluss
ein Unicast-Paket empfängt
und speichert, sendet er die Netzwerkadresse der in dem Paket enthaltenen
Zielstation über
den MAPPING-Bus an das Adressen-Abbildungssystem 26. Das Adressen-Abbildungssystem
gibt den Identifikations-Code ID des Ausgangsanschlusses zurück, z.B.
TP1, um das Paket zu empfangen. Der Eingangsanschluss RP0 leitet
dann die Ausgangsanschluss-ID an die Verteiler- Sequenziervorrichtung 22 weiter,
um eine Verbindung mit dem Ausgangsanschluss TP1 über die
passende Unicast-Leitung H1 zu verlangen. Wenn andererseits ein
Eingangsanschluss ein zu einer Netzwerk-Broadcast-Adresse gerichtetes
Broadcast-Paket empfängt,
verlangt er eine Verbindung mit der Broadcast-Leitung BC, ohne auf das Abbildungssystem 26 zuzugreifen.
-
Virtuelle Netzwerke und Multicast-Übertragungen
-
Ein
Netzwerk kann in verschiedene "virtuelle
Netzwerke" organisiert
sein, bei denen jede Station Übertragungen
von anderen Stationen innerhalb ihres eigenen virtuellen Netzwerks
akzeptiert, nicht jedoch von Stationen, die anderen virtuellen Netzwerken
zugeordnet sind. So kann z.B. ein Einzelnetzwerk alle Stationen in
einer großen
Firma miteinander verbinden, während
Stationen in gesonderten Abteilungen, wie z.B. Ingenieurwesen, Marketing
und Buchhaltung, gesonderten "virtuellen
Netzwerken" zugeordnet
werden. In einer virtuellen Netzwerk-Umgebung erfolgt ein "Multicasten" eines Pakets an
alle Stationen seines eigenen virtuellen Netzwerks und kein "Broadcasten" eines Pakets an
alle Stationen des größeren physikalischen
Netzwerks. Der Netzwerk-Switch 10 behandelt effizient Unicast-
und Multicast-Übertragungen
in einer virtuellen Netzwerkumgebung.
-
Wie
in 1 gezeigt, führt
ein System-Überwacher
dem Adressen-Abbildungssystem 26 Daten zu, welche die Netzwerkstationen
verschiedenen virtuellen Netzwerken zuordnen. Wenn, wie oben erwähnt, ein Eingangsanschluss
RP0–RP23
ein Unicast-Paket
von einer Quellenstation empfängt,
sendet es eine Ziel-Adresse
an das Abbildungssystem 26, um in eine Ausgangsanschluss-ID übersetzt
zu werden. Wenn das Abbildungssystem 26 die Ausgangsanschluss-ID
zurückgibt,
teilt es dem Eingangsanschluss auch mit, ob die Zielstation in demselben
virtuellen Netzwerk wie die Quellenstation enthalten ist. Wenn die
Quellen- und Zielstation in demselben virtuellen Netzwerk sind,
leitet der Eingangsanschluss das Unicast-Paket an den gekennzeichneten
Ausgangsanschluss weiter. Wenn andererseits die Quellen- und Zielstation
nicht in demselben virtuellen Netzwerk sind, verwirft der Eingangsanschluss
das Paket und leitet es nicht weiter. Wenn ein Eingangsanschluss
ein Multicast-Paket empfängt,
das zu der Netzwerk-Broadcast-Adresse gerichtet ist, verlangt er
eine Verbindung mit der Broadcast-Leitung BC, ohne auf das Abbildungssystem 26 zuzugreifen.
-
Jedes
Multicast-Paket enthält
die Netzwerkadresse der Quellenstation, die das Paket sendet. Wenn einer
der Ausgangsanschlüsse
TP0–TP23
ein Multicast-Paket über
die Broadcast-Leitung
BC empfängt,
sendet sie dem Abbildungssystem 26 die Netzwerkadresse
der Quellenstation des Multicast-Pakets zusammen mit der Netzwerkadresse
der Zielstation, die der Ausgangsanschluss bedient. Das Abbildungssystem 26 reagiert,
indem es dem Ausgangsanschluss mitteilt, ob die Quellen- und Zielstation
innerhalb desselben virtuellen Netzwerks sind. Wenn sie in demselben
virtuellen Netzwerk sind, leitet der Ausgangsanschluss das Paket
zu der Station, die er bedient. Wenn der Quellen- und Zielanschluss
nicht in demselben virtuellen Netzwerk sind, verwirft der Ausgangsanschluss
das Broadcast-Paket und leitet es nicht an die Netzwerkstation weiter,
die er bedient.
-
Wenn
er eingestellt ist, um in einer virtuellen Netzwerkumgebung betrieben
zu werden, leitet daher der Switch der vorliegenden Erfindung sowohl
Unicast- als auch Multicast-Pakete nur zu Ziel-Netzwerkstationen weiter,
die in demselben virtuellen Netzwerk wie die Quellenstation enthalten
sind.
-
Koppelpunkt-Schalter
-
Der
Koppelpunkt-Schalter 12 enthält die Gruppe aus 24 "vertikalen" Eingangsleitungen
(Leiter) V0–V23,
die jeweils mit einem entsprechenden Anschluss der Eingangsanschlüsse RP0–RP23 verbunden sind,
und die Gruppe der 24 "horizontalen" Ausgangsleitungen
H0–H23H0–H23, die
jeweils mit einem entsprechenden Ausgangsanschluss der Ausgangsanschlüsse TP0–TP23 verbunden
sind. Der Schalter 12 enthält auch die Ausgangs-Broadcast-Leitung
BC, die zusammen mit allen Ausgangsanschlüssen TP0–TP23 verbunden ist. In einer
Matrix aus CMOS-Durchlass-Transistoren 23 haben
diese jeweils einen Source- und einen Drain-Anschluss, die mit einer
der horizontalen Leitungen H0– H23
und mit einer der vertikalen Leitungen V0–V23 verbunden sind. Ein Schreib-Lese-Speicher
(Direktzugriff-Speicher RAM) 14 speichert 25 24-Bit-Wörter und
führt ein
gesondertes Steuerungssignal CONT dem Gate-Anschluss jedes Transistors 20 zu.
Wenn ein CONT-Signal bestätigt
wird, schaltet es einen Durchlass-Transistor 20 an, wodurch
ein Signalweg zwischen einer der vertikalen Leitungen V0–V23 und
einer der horizontalen Leitungen H0–H23 oder der Broadcast-Leitung
BC hergestellt wird. Der Zustand jedes CONT-Signals, das einem Transistor 20 der
J-ten Zeile des Transistors 20 zugeführt wird, wird durch ein entsprechendes
Bit eines in dem RAM gespeicherten Datenworts bestimmt. Die Vermittler-Sequenziervorrichtung 22 reagiert
auf die Verbindungsanfragen von den Eingangsanschlüssen RP0–RP23, indem
sie in das RAM 14 Daten schreibt, wodurch Signal-Wegleitungen
durch den Schalter 12 erstellt und gebrochen werden.
-
Eingangsanschluss
-
2 zeigt
den Eingangsanschluss von
1 ausführlicher
in Form eines Blockdiagramms. Die Eingangsanschlüsse RP1–RP23 sind ähnlich. Eine Netzwerkstation überträgt ein Datenpaket
an den Eingangsanschluss RP0 in serieller Form über einen Bus RX0, der das
Protokoll Ethernet 10BASE-T verwendet. Das Datenpaket, das als standardmäßige Ethernet-Protokoll-Dateneinheit formatiert
ist, hat eine variable Länge und
enthalt die in Tabelle I gezeigten Felder. Tabelle I
Feld | Feldlänge | Zweck |
PREAMBLE | 7
Byte | verwendet
zum Synchronisieren |
START | 1
Byte | Start
des Datenblock-Begrenzers |
DEST | 6
Byte | Ziel-Netzwerkadresse |
SOURCE | 6
Byte | Quellen-Netzwerkadresse |
TYPE/LEN | 2
Byte | Typ
oder Länge
des Datenfelds |
DATA | 46–1.500 Byte | Datenfeld |
CRC | 4
Byte | Datenblock-Überprüfungsfeld |
-
Das
PREAMBLE- und START-Feld sind festgelegte Datenmuster, die für alle Pakete
gleich sind. Das DEST-Feld kennzeichnet die Netzwerkadresse der
Station zum Empfangen des Pakets oder kennzeichnet die Netzwerk-Broadcast/Multicast-Adresse.
Das SOURCE-Feld kennzeichnet die Netzwerkadresse der Datenstation,
die das Paket übertragen
hat. Die TYPE/LEN-Felder können
entweder den Pakettyp oder die Länge
des Datenfelds kenn zeichnen, je nach dem verwendeten Protokoll.
Das DATA-Feld hält
die Paket-Nutzdaten und kann 46 bis 1.500 Byte lang sein. Das CRC-Feld
ist ein Datenblock-Überprüfungsfeld,
das von der empfangenden Station verwendet wird, um zu bestimmen,
ob das Paket bei der Übertragung
beeinträchtigt
wurde.
-
Wie
man in 2 sieht, empfängt
eine herkömmliche
Netzwerk-Schnittstellenschaltung 30 vom
Typ 10BASE-T das auf dem Eingangsbus RX0 ankommende hereinkommende
Paket. Ein auf dem Bus befördertes
Trägersignal
kennzeichnet den Anfang und das Ende der Paketübertragung. Bei der Ankunft
jedes Bits eines Datenpakets taktet die Netzwerk-Schnittstellenschaltung 30 ein
LOAD-Signal (Last-Signal), um das Bit in einem 4-Bit-SIPO-Schieberegister 31 (Schieberegister
mit serieller Eingabe und paralleler Ausgabe) zu speichern. Wenn
das erste 4-Bit-"Nibble" (Halb-Byte bzw.
Tetrade) des Datenpakets nach der Präambel in das Register 31 geladen
worden ist, bestätigt
die Schnittstellenschaltung 30 ein Hereinschiebe-Signal
(SI) an einen FIFO-Puffer 32 (First-In/First-Out-Puffer),
was dazu führt,
dass der FIFO-Puffer das Nibble speichert. Die Schnittstellenschaltung 30 lädt weiterhin
jedes nachfolgende Nibble des Datenpakets in den Puffer 32.
-
Wenn
das längste
gespeicherte Nibble in dem FIFO-Puffer 32 das erste Nibble
des Datenpakets nach der Präambel
ist, übertragt
die Netzwerk-Schnittstellenschaltung 30 ein START-Signal an die Puffer-Steuerungsvorrichtung 34.
Die Puffer-Steuerungsvorrichtung 34 steuert
das Speichern der Datenpakete in einem Schreib-Lese-Speicher (RAM,
Direktzugriffsspeicher) 36. Beim Empfang des START-Signals
beginnt die Puffer-Steuerungsvorrichtung 34 das
Takten eines Herausschiebesignals (SO), wobei jeder Impuls dazu
führt, dass
der FIFO-Puffer 32 ein
4-Bit-Daten-Nibble über
einen 4-Bit-Datenbus 61 zu dem RAM 36 herausschiebt. Das
RAM 36, das durch von der Puffer-Steuerungsvorrichtung 34 erzeugte
Adressen- und Lese/Schreib-Steuerungssignale gesteuert wird, speichert
die Paket-Daten-Nibble bei sequenziellen Adressen. Die Netzwerk-Schnittstellenschaltung 30 zählt die
Nibble jedes Pakets, die sie in den FIFO-Puffer 32 lädt, und
zählt auch
die Impulse des durch die Puffer-Steuerungsvorrichtung 34 erzeugten
SO-Signals, um zu
bestimmen, wie viele Nibble die Steuerungsvorrichtung 34 in
dem RAM 36 gespeichert hat. Nachdem die Schnittstellenschaltung 30 das
letzte Nibble des Pakets in den FIFO-Puffer 32 schiebt,
zählt es
weiterhin die Anzahl der Nibble, welche die Puffer-Steuerungsvorrichtung 34 aus
dem Puffer 32 herausschiebt, und sendet ein END-Signal
an die Steuerungsvorrichtung 34, um ihr mitzuteilen, dass
sie das letzte Nibble des Pakets erhalten hat. Die Puffer-Steuerungsvorrichtung 34 zählt auch
Nibble von hereinkommenden Paketdaten, wenn sie in dem RAM 36 gespeichert
werden. Nach dem Empfangen des END-Signals von der Netzwerk-Schnittstelle 30 speichert
die Steuerungsvorrichtung 34 ihren Zählwert in dem RAM 36 als
ein LENGTH-Feld (Längen-Feld)
in einem Anfangskennsatz-Abschnitt des Pakets. Wenn das Paket später an einen
Ausgangspuffer weitergeleitet wird, bestimmt der Ausgangspuffer
die Länge
des Pakets aus dem LENGTH-Feld.
-
Wenn
sie die Paketdaten in das RAM 36 lädt, bestimmt die Puffer-Steuerungsvorrichtung 34 aus
ihrem Nibble-Zählwert,
wann die Quellen- und Zielfelder (SOURCE, DEST) der Datenpakete
in dem FIFO-Puffer 32 erscheinen. An diesem Punkt erzeugt
die Puffer-Steuerungsvorrichtung 34 einen Translationssignal-Impuls (TRANS), der
dazu führt,
dass eine Adressen-Translationsschaltung 44 die SOURCE-
und DEST-Daten erhält. Wenn
das Paket eine Unicast- und keine Broadcast-Übertragung ist, wie durch die
DEST-Daten gekennzeichnet, sendet die Adressen-Translationsschaltung 44 ein
Unterbrechungssignal an das Ad ressen-Abbildungssystem 26 von 1 über den
MAPPING-Bus. Das Adressen-Abbildungssystem behält eine Tabelle zum Übersetzen
von Netzwerkadressen in Anschluss-IDs. Beim Empfangen der Unterbrechung
erhält
das Adressen-Abbildungssystem das SOURCE- und DEST-Feld von der
Translationsschaltung 44 sowie die ID des Eingang/Ausgangsanschlusses
RP0/TP0 (Die Quellen-Netzwerkstation,
die das Paket über
den Eingangsanschluss RP0 gesendet hat, ist auch mit dem Ausgangsanschluss
TP0 verbunden, um Netzwerkübertragungen zu
empfangen). Das Adressen-Abbildungssystem
aktualisiert seine Abbildungstabelle, um die SOURCE-Feldadresse
auf dem Eingang/Ausgangsanschluss RP0/TP0 abzubilden. Das Abbildungssystem
verwendet diese Abbildung später,
wenn irgendeine andere Netzwerkstation ein Paket an die mit dem
Anschluss TP0 verbundene Quellenstation sendet.
-
Das
Adressen-Abbildungssystem 26 (1) übersetzt
auch das von der Adressen-Translationsschaltung 44 erhaltene
DEST-Feld in die ID des Ausgangsanschlusses, mit dem die Zielstation
verbunden ist, und gibt die Ausgangsanschluss-ID (PORT_ID) in die
Translationsschaltung 44 zurück. In einer virtuellen Netzwerkumgebung
teilt das Abbildungssystem 26 der Translationsschaltung 44 auch
mit, ob die Zielstation in demselben virtuellen Netzwerk wie die
Quellenstation enthalten ist. Wenn die Zielstation ein gültiges Ziel
bzw. ein gültiger
Bestimmungsort für
ein Paket von der Quellenstation ist, führt die Translationsschaltung 44 die
Ausgangsanschluss-ID (PORT_ID) einem FIFO-Puffer 45 zu.
Die längste
gespeicherte PORT_ID in dem FIFO-Puffer 45 wird einer Vermittlereinheit 46 zugeführt. Der
FIFO-Puffer 45 führt
ein EMPTY-Signal (Leer-Signal)
einer Übertragungs-Zustandsmaschine 50 zu,
wenn er leer ist, und bestätigt
es nicht, wenn er eine Anschluss-ID speichert. Die Zustandsmaschine 50 steuert
den Fluss von Daten aus dem Eingangsanschluss RP0 auf dem Leiter
V0 heraus zu dem Schalter 12 von 2. Wenn
die Zustandsmaschine 50 erfasst, dass der FIFO-Puffer 45 nicht
leer ist und der Anschluss TP0 momentan kein Paket über die
Leitung V0 weiterleitet, taktet die Zustandsmaschine 50 ein
Anforderungssignal REQ, das der Verteilereinheit 46 zugeführt wird.
Die Vermittlereinheit 46 erhält dann die längste gespeicherte
PORT_ID-Ausgabe
von dem FIFO-Puffer 45. Später, wenn die Vermittler-Sequenziervorrichtung 22 (1)
den Eingangsanschluss RP0 über
den GLOBAL-Bus abfrägt,
um zu bestimmen, ob der Eingangsanschluss RP0 eine pendente Verbindungsanfrage
hat, erhält
die Sequenziervorrichtung 22 die PORT_ID von der Verteilereinheit 46.
Wenn die Sequenziervorrichtung 22 danach die Anfrage gewährt, signalisiert
sie der Vermittlereinheit-Schaltung 46 (2),
der Zustandsmaschine 50 einen GRANTED-Impuls zuzuführen. Die Zustandsmaschine 50 taktet
dann ein NEXT-PACKET-Signal, das der Puffer-Steuerungsvorrichtung 34 zugeführt wird,
und teilt der Steuerungsvorrichtung 34 mit, dass sie beginnen
kann, ein weiteres in dem RAM 36 gespeichertes Paket auf
der V0-Leitung heraus weiterzuleiten.
-
Die
Puffer-Steuerungsvorrichtung 34 schaltet dann einen Multiplexer 60 um,
um einen fest verdrahteten 5-Bit-Code "J" zu
empfangen, und verschiebt dann die "J"-Code-Ausgabe
des Multiplexers 60 in einen FIFO-Puffer 62. Die
Steuerungsvorrichtung 34 schaltet dann den Multiplexer 60 um,
um einen festverdrahteten "K"-Code auszuwählen, und
verschiebt die "K"-Code-Ausgabe des
Multiplexers 60 in den FIFO-Puffer 62. (Wie weiter
unten erklärt
wird, markiert die JK-Code-Sequenz den Anfang einer Datenpaket-Übertragung
auf der Ausgangsleitung V0.) Anschließend schaltet die Steuerungsvorrichtung 34 den
Multiplexer 60 um, um die 5-Bit-Datenausgabe einer Codiererschaltung 58 auszuwählen, welche
die 4-Bit-Daten, die auf dem Daten-Eingabe/Ausgabe-Bus 61 des
RAM 36 erscheinen, in eine 5-Bit-"4B5B"-codierte
Form umwandelt (wie weiter unten beschrieben). Die Sequenziervorrichtung 34 beginnt
dann mit dem sequenziellen Auslesen von 4-Bit-Nibbles des Datenpakets
aus dem RAM 36. Wenn der Codierer 58 die Nibbles
in 5-Bit-4B5B-codierte Form
umwandelt, gibt der Multiplexer 60 das 5-Bit-Ergebnis an
einen FIFO-Puffer 62 weiter. Die Sequenziervorrichtung 34 taktet
ein Hereinschiebe-Signal (SI), das bewirkt, dass der FIFO-Puffer 62 die
5-Bit-Datenwerte lädt.
Der FIFO-Puffer 62 erzeugt ein FULL-Signal, das der Steuerungsvorrichtung 34 mitteilt,
wann der Puffer voll ist. Das längste
gespeicherte Nibble in dem FIFO-Puffer 62 wird einem Schieberegister 56 zugeführt. Wenn
der FIFO-Puffer 62 nicht leer ist, signalisiert die Zustandsmaschine 50 dem
Schieberegister 56, den 5-Bit-Wert von dem Puffer 65 herein
zu schieben, und signalisiert ihm dann, ihn in serieller Form heraus
zu schieben auf die Schalter-Eingabeleitung V0 zu dem Schalter 12 von 1.
Der Schalter 12 leitet die Daten zu dem geeigneten Ausgangsanschluss.
-
Wenn
die Puffer-Steuerungsvorrichtung 34 Paketdaten aus dem
RAM 36 an den FIFO-Puffer 62 weiterleitet, zählt sie
die ausgesandten Nibbles und vergleicht den Zählwert mit der bekannten Länge des
Pakets, das in dem Paket-Anfangskennsatz enthalten ist. Nachdem
es das letzte Nibble des Pakets durch die Codiervorrichtung 58 an
den FIFO-Puffer 62 weiterleitet, schaltet die Steuerungsvorrichtung 34 den
Multiplexer 60 um, um einen fest-verdrahteten 5-Bit-"T"-Code auszuwählen und an den FIFO-Puffer 62 weiterzuleiten.
Dieser Code, der das Ende des Pakets markiert, tritt durch den FIFO-Puffer 62 und
das Schieberegister 56 hindurch und wandert auf der Leitung
V0 am Ende des Datenpakets nach außen. Wenn das letzte Bit des
Nibbles des Pakets den FIFO-Puffer 62 verlässt, signalisiert
der Puffer 62 der Zustandsmaschine 50, dass sie
leer ist.
-
Wenn
der FIFO-Puffer 45 nicht leer ist, leitet die Zustandsmaschine 50 dann
eine weitere Verbindungsanfrage ein und wartet auf einen weiteren
GRANTED-Signalimpuls, der anzeigt, dass eine nächste Verbindungsanfrage erstellt
worden ist. Sie signalisiert dann der Steuerungsvorrichtung 34 mit
einem NEXT_PACKET-Signalimpuls und zeigt an, dass sie das nächste in
dem RAM 36 gespeicherte Paket weiterleiten kann.
-
Wenn
ein von der Quellenstation ankommendes Unicast-Paket zu einer Zielstation
geleitet wird, die nicht in demselben virtuellen Netzwerk wie die
Quellenstation enthalten ist, signalisiert das Adressen-Abbildungssystem 22 (1)
der Adressen-Translationseinheit 44 (2),
dass die Zielstation ungültig
ist. In diesem Fall schiebt die Adressen-Translationseinheit 44 die
PORT_ID des Zielanschlusses nicht in den FIFO-Puffer 45, und es ergibt sich
keine Verbindungsanfrage. Stattdessen sendet die Adressen-Translationseinheit 44 einen
INVALID-Signalimpuls an die Puffer-Steuerungsvorrichtung 34.
Diese teilt der Steuerungsvorrichtung 34 mit, dass sie
das letzte empfangene Paket "verwerfen" soll. Die Steuerungsvorrichtung 34 verwirft
das Paket, indem sie es mit einem nächsten empfangenen Paket überschreibt,
ohne es an die Zielstation weiterzuleiten.
-
Die
ersten wenigen Bits der in einem hereinkommenden Broadcast/Multicast-Paket
enthaltenen Zieladresse zeigen an, dass das Paket ein Broadcast/Multicast-Paket
ist. Wenn ein Broadcast/Multicast-Paket an dem Eingangsanschluss
RP0 ankommt, verschiebt die Adressen-Translationsschaltung 44 eine "Broadcast-Leitung" ID in den FIFO-Puffer 45 anstelle
eines speziellen Ausgangsanschlusses ID und signalisiert der Puffer-Steuerungsvorrichtung 34,
dass das hereinkommende Paket gültig
ist. Die Translationsschaltung 44 kommuniziert nicht mit
dem Adressen-Translationssystem. Die in den FIFO-Puf fer 45 geschobene
Broadcast-Leitung leitet eine Anfrage für eine Verbindung mit der Broadcast-Leitung
BC ein. Wie weiter oben erwähnt
wurde, konsultiert jeder Ausgangsanschluss, der das Broadcast- oder
Multicast-Paket empfängt,
das Adressen-Translationssystem,
um zu bestimmen, ob er das Paket an den Zielanschluss weiterleiten
soll, den er bedient.
-
4B5B-Codierung
-
Die
Datenpakete werden codiert, bevor sie auf der Ausgangsleitung V0 übertragen
werden, um es den Ausgangsanschlüssen
zu ermöglichen,
zu bestimmen, wann die Datenpakete anfangen und enden. In Übereinstimmung
mit dem "4B5B"-Codiersystem des
ANSI-Standards X379 (FDDI) wandelt der Codierer
54 jedes hereinkommende
4-Bit-Nibble in einen 5-Bit-Ausgabewert um, wie in Tabelle II dargestellt
ist. Tabelle II
NIBBLE | 4B5B |
0000 | 11110 |
0001 | 01001 |
0010 | 10100 |
0011 | 10101 |
0100 | 01010 |
0101 | 01011 |
0110 | 01110 |
0111 | 01111 |
1000 | 10010 |
1001 | 10011 |
1010 | 10110 |
1011 | 10111 |
1100 | 11010 |
1101 | 11011 |
1110 | 11100 |
1111 | 11101 |
-
Da
nur 16 der 32 möglichen
Kombinationen des 4B5B-Codes benötigt
werden, um die sechzehn möglichen
Werte eines 4-Bit- Nibbles
darzustellen, stehen die verbleibenden 16 Kombinationen des 4B5B-Codes für andere
Zwecke zur Verfügung.
-
Tabelle
III weiter unten listet auf, wie der Netzwerk-Switch der vorliegenden
Erfindung die verbleibenden 16 4B5B-Codes verwendet. Tabelle III
4B5B | Name | Funktion |
00000 | Q | Kein
Betrieb |
11111 | I | Leerlauf |
00100 | H | Kein
Betrieb |
11000 | J | Paketstart
1 |
10001 | K | Paketstart
2 |
01101 | T | Paketende |
00111 | R | Kein
Betrieb |
11001 | S | Kein
Betrieb |
00001 | V | Verletzung |
00011 | V | Verletzung |
00010 | V | Verletzung |
00101 | V | Verletzung |
00110 | V | Verletzung |
01000 | V | Verletzung |
01100 | V | Verletzung |
10000 | CR | Verbindungsanfrage-Start |
-
Der
CR-Code wird verwendet, um den Start einer Verbindungsanfrage zu
identifizieren. Die Codes Q, H, R und S werden ignoriert, wenn sie
in einem 4B5B-codierten Datenpaket erscheinen. Der T-Code zeigt
das Ende eines 4B5B-codierten Datenpakets an. Die Codes I, J, K
und V werden verwendet, um die Übertragung und
den Empfang eines 4B5B-codierten Datenstroms in der weiter unten
beschriebenen Art und Weise zu synchronisieren.
-
Ausgangsanschluss
-
3 zeigt
den Ausgangsanschluss TP0 von 1 ausführlicher
in Form eines Blockdiagramms. Die Ausgangsanschlüsse TP1–TP23 sind ähnlich. Der Ausgangsanschluss
TP0 enthält
ein 10-Bit-SIPO-Schieberegister 70 (Schieberegister mit
serieller Eingabe und paralleler Ausgabe), das durch das System-Taktsignal CLK
getaktet wird, um auf der H0-Leitung ankommende Datenbits zu empfangen
und zu speichern. Eine Gruppe aus Decodierern 72 signalisieren
einer Ausgangsanschluss-Steuerungsvorrichtung 73, wann
die fünf
Datenbits, die am längsten
in dem Schieberegister 70 gespeichert sind, den 4B5B-Code
I, V oder T von Tabelle II weiter oben darstellen oder wann alle
zehn Bits in dem Schieberegister 70 die Codes J und K der
Reihe nach darstellen. Ein 4B5B-Decodierer 74 wandelt den
längsten
gespeicherten 5-Bit-Wert in das entsprechende 4-Bit-Nibble um und leitet
ihn an den Eingang eines FIFO-Puffers 76 weiter.
-
4 ist
ein Zustandsdiagramm, das einen Synchronisationsvorgang darstellt,
der durch die Ausgangsanschluss-Steuerungsvorrichtung 73 von 3 durchgeführt wird.
Die Ausgangsanschluss-Steuerungsvorrichtung 73 beginnt
in einem "Nicht-Synchronisation"-Zustand 81.
Die Steuerungsvorrichtung bleibt in dem Zustand 81, bis
der Decodierer 72 das I-Signal (Leerlauf) erfasst. An diesem
Punkt bewegt sich die Steuerungsvorrichtung 73 zu einem "Vorab-Synchronisation"-Zustand 82.
Wenn der Decodierer 72 die Erfassung aufeinanderfolgender
Symbole J und K signalisiert (Kennzeichnung des Starts eines Datenpakets),
wartet die Steuerungsvorrichtung 74 während 10 Zyklen des CLK-Signals,
um die Symbole J und K aus dem Schieberegister 70 zu löschen, und
schaltet dann in einen SYNC-Zustand 84 um, bei dem sie
ein SI-Signal au jedem 5-ten Impuls des System-Taktsignals bestätigt, um
jedes Nibble des hereinkommenden Pakets in den FIFO-Puffer 76 zu
laden. Wenn der Decodierer 72 den Code T erfasst, der das
Paketende kennzeichnet, taktet die Steuerungsvorrichtung 73 ein
Signal IDLE, das einer Vermittlereinheit 75 (Zustand 83)
zugeführt
wird und dann in den Zustand 84 zurückkehrt. Wenn der Decodierer 72 den
Code V erfasst, geht die Steuerungsvorrichtung 73 in den
Nicht-Synchronisation-Zustand 81 zurück.
-
Wenn
in 3 der FIFO-Puffer 76 signalisiert, dass
er nicht leer ist, schiebt die Steuerungsvorrichtung 73 Daten
aus dem FIFO-Puffer 76 auf einen 4-Bit-Daten-Eingabe/Ausgabe-Bus
eines Schreib-Lese-Speichers (RAM) 78. Die Steuerungsvorrichtung 73 führt dann
dem RAM 78 Adressen- und Steuerungssignale zu, was dazu
führt,
dass es das 4-Bit-Nibble speichert. Die Steuerungsvorrichtung 73 verwendet
das RAM 78 als großen
FIFO-Puffer zum Zusammenfügen
und Speichern jedes Datenpakets, bis es nach draußen zu der
Zielstation übertragen
werden kann. Die Steuerungsvorrichtung 73 erhält einen
Zählwert
von Paket-Bytes aufrecht, die in dem RAM 78 empfangen werden
und gespeichert sind, und liest das Länge-Feld in den Paket-Anfangskennsatz,
wenn es in dem RAM 78 ankommt, um die Länge des Pakets zu bestimmen.
Wenn das Paket vollständig
in das RAM 78 geladen ist, signalisiert dies die Steuerungsvorrichtung 73 einer
Neztwerk-Schnittstellenschaltung 90.
-
Die
Steuerungsvorrichtung 90 steuert die Übertragung von Datenpaketen
nach außen
zu der Zielstation auf dem Bus TX0. Wenn die Steuerungsvorrichtung 90 bereit
ist, ein in dem RAM 78 gespeichertes Paket weiterzuleiten,
schaltet sie einen Multiplexer 92, um die Ausgabe eines
Mustergenerators 94 auszuwählen, und signalisiert einem
Generator 94, eine Abfolge von 4-Bit-Nibbles zu erzeugen,
welche die PREAMBLE- und START-Datenpaket-Felder eines standardmäßigen Ethernet-Protokolls bilden.
Der Multiplexer 92 leitet jedes Nibble an ein PISO-Schieberegister 96 (Schieberegister
mit paralleler Eingabe und serieller Ausgabe), das durch die Steuerungsvorrichtung 90 gesteuert
wird. Das Schieberegister 96 leitet die Daten in serieller
Form an eine herkömmliche
Ethernet-Schnittstellenschaltung 98,
welche die Daten nach außen
auf dem TX0-Bus zu der Netzwerkstation weiterleitet. Nachdem die
PREAMBLE-und START-Felder durch den Multiplexer 92 weitergeleitet
wurden, signalisiert die Steuerungsvorrichtung 90 der Steuerungsvorrichtung 73,
dass sie mit dem sequenziellen Auslesen von 4-Bit-Paketdaten aus
dem RAM 78 beginnen soll und sie durch den Multiplexer 92 und
das Schieberegister 96 zu der Schnittstellenschaltung 98 für die Übertragung
zu der Zielstation leiten soll. Wenn die Steuerungsvorrichtung 73 das
letzte Nibble eines Pakets ausgelesen hat, signalisiert sie dies
der Steuerungsvorrichtung 90.
-
Der
Ausgangsanschluss TP0 enthält
auch ein Schieberegister 100, Decodierer 102 und 104,
eine Broadcast-Anschluss-Steuerungsvorrichtung 103, einen
FIFO-Puffer 106 und ein RAM 108, welche auf dem Broadcast-Bus
BC ankommende Broadcast-Pakete unabhängig verarbeiten, und zwar
im wesentlichen auf dieselbe Art und Weise wie die entsprechenden
Vorrichtungen 70, 72, 74, 73, 76 und 78 Unicast-Pakete
verarbeiten, die auf der H0– Leitung
ankommen. Bevor sie der Netzwerk-Steuerungsvorrichtung 90 signalisiert, dass
ein in dem RAM 108 gespeichertes Paket für die Weiterleitung
bereit ist, sendet die Steuerungsvorrichtung 103 jedoch
eine Kopie der Netzwerkadresse der Quellenstation, die in dem gespeicherten
Paket-Anfangskennsatz enthalten ist, an eine Adressen-Translationseinheit 110'. Die Adressen-Translationseinheit 110 sendet
die Quellen-Netzwerkadresse und die ID des Ausgangsanschlusses TP0 über den
MAPPING-Bus an das Abbildungssystem 26 (1).
Das Adressen-Abbildungssystem bestimmt, ob die mit dem Anschluss
TP0 verbundene Netzwerkstation existiert und sich innerhalb desselben
virtuellen Netzwerks wie die Quellen-Netzwerkstation befindet. Wenn
die Netzwerkstation nicht existiert oder keine gültige Zielstation für die Paketquelle ist,
signalisiert dies die Adressen-Translationseinheit 110 der
Steuerungsvorrichtung 103, und die Steuerungsvorrichtung 103 verwirft
das Paket, ohne es weiterzuleiten. Wenn die mit dem Anschluss TP0
verbundene Station ein gültiges
Ziel (Bestimmungsort) für
das Paket ist, signalisiert dies die Adressen-Translationseinheit 110 der
Steuerungsvorrichtung 103. Die Steuerungsvorrichtung 103 signalisiert
dann der Netzwerk-Schnittstellen-Steuerungsvorrichtung 90,
dass sie bereit ist, ein Paket an die Netzwerkstation weiterzuleiten.
Anschließend
leiten die Steuerungsvorrichtungen 90 und 103 das
Broadcast-Paket
von dem RAM 108 an den TX0-Bus weiter, und zwar auf dieselbe
Art und Weise wie die Steuerungsvorrichtungen 90 und 73 Unicast-Pakete
von dem RAM 78 weiterleiten. Wenn beide RAMs 78 und 108 weiterzuleitende
Pakete speichern, leitet sie die Steuerungsvorrichtung 90 abwechselnd
weiter.
-
Eine
Vermittlereinheit 75 kommuniziert mit der Vermittler-Sequenziervorrichtung 22 von 1 über den
GLOBAL-Bus. Die Vermittlereinheit 75 empfängt einen
IDLE-Signalimpuls, nachdem der Decodierer 72 den Empfang
des Endes des Unicast-Pakets
erfasst. Wenn die Vermittlereinheit-Schaltung 75 durch
die Vermittler-Sequenziervorrichtung 22 abgefragt wird,
signalisiert sie der Vermittler-Sequenziervorrichtung, dass der
Ausgangsanschluss TP0 in den Leerlauf gegangen ist und auf der Leitung
H0 keine Unicast-Pakete mehr empfängt. Die Steuerungsvorrichtung 103 taktet
ein IDLE_BC-Signal zu der Ver mittlereinheit 75, wenn der
Decodierer 102 das Ende eines Broadcast-Pakets erfasst.
Dies bewirkt, dass die Vermittlereinheit 75 eine Unterbrechungsleitung
des GLOBAL-Busses taktet, um der Vermittler-Sequenziervorrichtung 22 mitzuteilen,
dass die BC-Leitung nun im Leerlauf ist.
-
Adressen-Translation
-
5 zeigt
ausführlicher
in Form eines Blockdiagramms das Adressen-Abbildungssystem 26 von 1,
eine Eingangsanschluss-Adressen-Translationseinheit 44 von 2 und
eine Ausgangsadressen-Translationseinheit 110 von 3,
die durch den MAPPING-Bus miteinander verbunden sind. Nur eine Eingangsanschluss-Adressen-Translationseinheit 44 und
eine Ausgangsanschluss-Adressen-Translationseinheit 110 sind
gezeigt, doch tatsächlich
gibt es 24 von jeder Bauart, die durch den MAPPING-Bus parallel verbunden
sind, und zwar eine für
jeden Eingangsanschluss und eine für jeden Ausgangsanschluss.
-
Das
Abbildungssystem 26 enthält einen herkömmlichen
Mikroprozessor 120, der unter der Steuerung von Firmware
in einem Nur-Lese-Speicher ROM 122 betrieben wird und auf
einen Schreib-Lese-Speicher RAM 124 zugreift. Der Mikroprozessor 120,
das ROM 122, das RAM 124 und eine Eingabe/Ausgabe-Schnittstellenschaltung 126 sind
durch den MAPPING-Bus miteinander verbunden. Der Mikroprozessor 120 erhält zwei
Tabellen in dem RAM 124 aufrecht. Eine erste Tabelle setzt
den Eingabe/Ausgabe-Anschluss ID mit einer Netzwerkadresse in Beziehung,
und eine zweite Tabelle ordnet Netzwerkadressen virtuellen Netzwerken
zu. Das Abbildungssystem baut die Anschluss-ID/Netzwerkadressen-Tabelle
aus Daten auf, die es von den Eingabe-Vermittlereinheiten 44 empfängt, wenn
Pakete an den Eingangsanschlüssen
ankommen. Ein Netzwerk-Überwacher liefert
die Abbildungstabelle für
das virtuelle Netzwerk über
die Eingabe/Ausgabe-Schnittstellenschaltung 126.
-
Die
Eingangsanschluss-Adressen-Translationseinheit 44 enthält eine
Bus-Eingabe/Ausgabe-Schnittstellenschaltung 130, eine Gruppe
von Registern 131–133,
ein Flipflop 134 und einen Vergleicher 135. Wenn die
Felder der Quellenadresse (SOURCE) und der Zieladresse (DEST) eines
an einem Eingangsanschluss ankommenden Unicast-Pakets der Einheit 44 zur
Verfügung
stehen, taktet die Puffer-Steuerungsvorrichtung 34 von 2 ein
TRANS-Signal, wodurch sie in die Register 132 und 133 geladen
werden. Der TRANS-Signalimpuls setzt auch das Flipflop 134.
Der Mikroprozessor 120 frägt die Translationseinheit 44 periodisch
ab, indem er den Q-Ausgang des Flipflops 134 überprüft. Dies
teilt dem Mikroprozessor 120 mit, dass die Einheit 44 eine
pendente Abbildungsanfrage hat. Der Mikroprozessor 120 antwortet,
indem er die Schnittstellenschaltung 130 auffordert, die
Daten SOURCE und DEST in den Registern 132 und 133 sowie
die ID (MY_ID) des Anschlusses, in welchem sich die Einheit 44 befindet,
weiterzuleiten. Der Mikroprozessor 120 aktualisiert die
Abbildungstabelle, um den durch MY_ID definierten Anschluss mit
der Netzwerk-SOURCE-Adresse in Beziehung zu setzen. Er bestimmt
dann aus der Zuordnungstabelle für
das virtuelle Netzwerk in dem RAM 124, ob der durch die
DEST-Adresse identifizierte Anschluss ein gültiger Zielanschluss für ein Paket
von dem SOURCE-Anschluss ist. Wenn der Zielanschluss nicht gültig ist,
signalisiert der Mikroprozessor 120 der Schnittstelle 130,
das Flipflop 134 rückzusetzen
und einen INVALID-Impuls an die Puffer-Steuerungsvorrichtung 34 von 2 zu
senden, um ihr mitzuteilen, das Paket zu verwerfen. Wenn der Zielanschluss
gültig
ist, sendet der Mikroprozessor 120 die Anschluss-ID (PORT_ID)
des Zielanschlusses an die Schnittstellenschaltung 130,
die sie in dem Register 31 speichert. Die Schnittstellenschaltung 130 setzt
dann das Flipflop 134 zurück und sendet einen VALID-Signalimpuls
an die Steuerungsvorrichtung 34 von 2, um ihr
mitzuteilen, dass sie das Paket weiterleiten kann, wenn sie bereit
ist, und sendet einen SI-Impuls an den FIFO-Puffer 45 der 2 und
teilt ihm mit, PORT_ID zu laden.
-
Der
Vergleicher 135 der Adressen-Translationseinheit 44 vergleicht
das in dem Register 132 gespeicherte Feld DEST mit der
Broadcast-Leitung ID (BC_ID) und signalisiert der Schnittstellenschaltung 130,
wann das hereinkommende Paket ein Broadcast- oder Multicast-Paket
ist. In einem solchen Fall setzt die Schnittstellenschaltung 130 das
Flipflop 134 zurück,
speichert die Broadcast-Leitung ID in dem Register 131 und
taktet die Signale SI und VALID, um eine Verbindungsanfrage für die Broadcast-Leitung
einzuleiten und den Eingabe-Anschluss darüber zu informieren, dass er
das Broadcast/Multicast-Paket weiterleiten kann. Bei rückgesetztem
Flipflop 134 bleibt das Abbildungssystem untätig, wenn
es das nächste
mal die Translationseinheit 44 abfrägt.
-
Die
Ausgangsanschluss-Adressen-Translationseinheit 110 enthält eine
Eingabe/Ausgabe-Schnittstellenschaltung 140, ein Schieberegister 142 und
ein Flipflop 144. Wenn ein Broadcast-Paket in dem RAM 108 von 3 gespeichert
wird, lädt
die Broadcast-Anschluss-Steuerungsvorrichtung 103 von 3 eine
Kopie der enthaltenen Quellen-Adresse in das Schieberegister 142 und
taktet dann ein Signal TRANS_BC, um das Flipflop 144 zu
setzen. Das Abbildungssystem 26 frägt die Einheit 110 periodisch
ab, und die Q-Ausgabe des Flipflops 144 teilt dem Abbildungssystem 26 mit,
dass eine Abbildungsanfrage pendent ist. Der Mikroprozessor 120 erhält die SOURCE-Adresse von dem Register 142 und
dem Anschluss ID (MY_ID) des Ausgangsanschlusses, in welchem sich
die Einheit 110 befin det, und verwendet seine Abbildungstabelle
und seine Tabelle für
das virtuelle Netzwerk, um zu bestimmen, ob der Ausgangsanschluss
ein gültiger
Zielanschluss ist und in demselben virtuellen Netzwerk als Station
enthalten ist, die durch die SOURCE-Adresse gekennzeichnet ist. Wenn
der Zielanschluss kein gültiges
Ziel für
das Broadcast-Paket ist, signalisiert das Abbildungssystem 26 der
Schnittstellenschaltung 140, das Flipflop 144 rückzusetzen
und einen Impuls INVALID_BC der Steuerungsvorrichtung 103 von 3 zu
senden, um ihr mitzuteilen, das Paket zu verwerfen. Wenn die Zieladresse gültig ist,
signalisiert das Abbildungssystem 26 der Schnittstellenschaltung 130,
das Flipflop 134 rückzusetzen und
einen Signalimpuls VALID_BC der Steuerungsvorrichtung 103 von 3 zu
senden, um ihr mitzuteilen, dass sie das Paket weiterleiten kann,
wenn sie bereit ist.
-
Vermittler-System
-
6 zeigt
ausführlicher
in Form eines Blockdiagramms die Vermittler-Sequenziervorrichtung 22 (1),
eine Eingangsanschluss-Vermittlereinheit 46 (2)
und eine Ausgangsanschluss-Vermittlereinheit 75 (3),
die alle durch den GLOBAL-Bus miteinander verbunden sind. Obwohl
nur eine Eingangsanschluss-Vermittlereinheit 46 und eine
Ausgangsanschluss-Translationseinheit 75 gezeigt sind,
sind tatsächlich 24
von jeder Bauart mit dem GLOBAL-Bus parallel verbunden, und zwar
eine für
jeden Eingangsanschluss und eine für jeden Ausgangsanschluss.
-
Die
Sequenziervorrichtung 22 enthält einen Mikroprozessor 150,
der unter der Steuerung von Firmware betrieben wird, die in einem
ROM 152 gespeichert ist, und ein RAM 154 für die temporäre Datenspeicherung
verwendet. Der Mikroprozessor 150, das ROM 152,
das RAM 154 und die Eingabe/Ausgabe-Schnitt stellenschaltung 156 sowie
alle Eingangs- und Ausgangsanschlüsse sind durch den GLOBAL-Bus
verbunden. Die Sequenziervorrichtung 22 behält zwei
Tabellen in dem RAM 154 bei. Eine Tabelle listet pendente
Anfragen von den Eingangsanschlüssen
RP0–RP23
auf und kennzeichnet die zu verbindenden Eingangs- und Ausgangsanschlüsse. Die
andere Tabelle zeigt an, welche der Ausgangsanschlüsse TP0–TP23 momentan
im Leerlauf sind, und auch, ob die Broadcast-Leitung BC im Leerlauf
ist. Die Sequenziervorrichtung 22 frägt die Eingangsanschluss-Vermittlereinheiten 44 periodisch
ab, um zu bestimmen, ob sie eine neue Verbindungsanfrage haben,
und frägt
die Ausgangsanschluss-Vermittlereinheiten 110 ab, um zu
bestimmen, welche Ausgangsanschlüsse
mit dem Empfangen eines Unicast-Pakets fertig sind. Die Ausgangsanschluss-Vermittlereinheiten senden
alle gleichzeitig ein Unterbrechungssignal über eine Unterbrechungsleitung
des GLOBAL-Busses an den Mikroprozessor 150, wenn die Broadcast-Leitung
BC in den Leerlauf gegangen ist.
-
Die
Eingangsanschluss-Vermittlereinheit 46 enthält eine
Bus-Schnittstellenschaltung 170,
ein Register 172 und ein Flipflop 174. Wenn die
Zustandsmaschine 50 (2) einen
REQ-Signalimpuls
an die Vermittlereinheit 46 überträgt, um zu signalisieren, dass
sie eine neue Verbindungsanfrage hat, setzt das REQ-Signal das Flipflop 174 und
lädt die
ID (PORT_ID) des angefragten Anschlusses oder der Broadcast-Leitung in das Register 172.
Wenn dann später
die Vermittler-Sequenziervorrichtung 22 die
Vermittlereinheit 46 abfrägt, prüft sie die Q-Ausgabe des Flipflops 174,
um zu bestimmen, ob eine neue Anfrage pendent ist, und setzt dann
das Flipflop zurück.
Wenn eine neue Anfrage pendent ist, holt sich der Mikroprozessor 150 die
ID des angefragten Ausgangsanschlusses (PORT_ID) von dem Register 172.
Der Mikroprozessor 150 prüft dann die Liste der leer laufenden
Ausgangsanschlüsse
in dem RAM 154, um zu bestimmen, ob der angefragte Ausgangsanschluss oder
die Broadcast-Leitung im Leerlauf ist. Wenn der verlangte Anschluss
oder die BC-Leitung nicht im Leerlauf ist, fügt der Mikroprozessor 150 die
Anfrage der Tabelle pendenter Anfragen hinzu. Wenn der verlangte Ausgangsanschluss
oder die Broadcast-Leitung im Leerlauf ist, aktualisiert der Mikroprozessor 150 die
Tabelle leer laufender Anschlüsse,
um anzuzeigen, dass der verlangte Ausgangsanschluss oder die Broadcast-Leitung nicht mehr
im Leerlauf ist, und sendet die Anfrage-Ausgangsanschluss-ID an ein Register 158 und
die Anfrage-Eingangsanschluss-ID
an ein Register 160 über
eine Schnittstellenschaltung 156.
-
Ein
Decodierer 162 innerhalb der Sequenziervorrichtung 22 decodiert
den Ausgangsanschluss oder die BC-Leitung ID in dem Register 158 und
bestätigt
eine der Leitungen W0–W23
zu dem RAM 14 von 1. Ein Decodierer 164 decodiert
die Eingabeanschluss-ID in dem Register 160, um eine der
Bit-Leitungen B0–B23
zu bestätigen
und die verbleibenden Bit-Leitungen nicht zu bestätigen. Daraufhin
signalisiert der Mikroprozessor 150 der Schnittstellenschaltung,
die Schreibfreigabe-Leitung
WE zu dem RAM 14 von 1 zu takten.
Das RAM 14 speichert die Datenwörter B0–B23 an dem Speicherort, der
durch das bestätigte
Bit W0–W23
gekennzeichnet ist, wodurch bewirkt wird, dass der Koppelpunkt-Schalter 12 von 1 die
Verbindung zwischen dem anfragenden Eingangsanschluss und dem angefragten
Ausgangsanschluss oder der BC-Leitung herstellt und jegliche vorherige
Verbindung mit dem Ausgangsanschluss oder der BC-Leitung unterbricht.
Daraufhin signalisiert der Mikroprozessor 150 der Bus-Schnittstellenschaltung 170 des
anfragenden Eingangsanschlusses, dass die Anfrage gewährt worden
ist. Die Schnittstellenschaltung 170 taktet dann das GRANTED-Signal
zu der Zustandsmaschine 50 des Eingangsanschlusses (2).
-
Die
Ausgangsanschluss-Vermittlereinheit 75 enthält eine
Bus-Schnittstellenschaltung 180 und
ein Flipflop 182. Wenn die Steuerungsvorrichtung 103 von 3 das
Signal IDLE_BC taktet, um das Ende der Broadcast-Paketübertragung
auf der BC-Leitung
anzuzeigen, teilt dieses Signal der Schnittstellenschaltung 180 mit,
eine Unterberechung zu dem Mikroprozessor 150 über eine
Unterbrechungsleitung des GLOBAL-Busses zu senden, um anzuzeigen,
dass die BC-Leitung nun im Leerlauf ist. Wenn die Steuerungsvorrichtung 73 von 3 das
IDLE-Signal taktet,
um das Ende eines auf der H0-Leitung ankommenden Unicast-Pakets
zu signalisieren, setzt der Signalimpuls IDLE das Flipflop 182 zurück. Wenn
daraufhin die Vermittler-Sequenziervorrichtung 22 den
Ausgangsanschluss abfrägt,
prüft sie
den Q-Ausgang des Flipflops 182, um zu bestimmen, ob der
Anschluss soeben in den Leerlauf gegangen ist. Wenn dies der Fall
ist, setzt sie das Flipflop zurück.
Wenn der Mikroprozessor 150 einen Hinweis erhält, dass
ein Ausgangsanschluss TP0–TP23 oder
die BC-Leitung in den Leerlauf gegangen ist, überprüft er die Liste pendenter Anfragen,
um zu bestimmen, ob irgendein Eingangsanschluss eine pendente Anfrage
für den
soeben in den Leerlauf gegangenen Ausgangsanschluss oder die BC-Leitung
hat. Wenn dies der Fall ist, gewährt
er die Anfrage, indem er die IDs des Eingangsanschlusses und des
angefragten Ausgangsanschlusses oder der BC-Leitung zu den Registern 153 und 160 sendet,
und der Schnittstellenschaltung 156 mitteilt, das Schreibfreigabe-Signal
WE zu takten. Der Mikroprozessor 150 sendet dann eine GRANTED-Nachricht über den
globalen Bus an den anfragenden Eingangsanschluss. Wenn keine pendenten
Anfragen für
den soeben in den Leerlauf gegangenen Ausgangsanschluss oder die
BC-Leitung vorliegen, aktualisiert der Mikroprozessor 150 einfach
die Liste der Leerlauf-Anschlüsse,
um anzuzeigen, dass der Ausgangsanschluss oder die BC-Leitung nun
im Leerlauf ist.
-
Es
wurde somit ein Schalter bzw. Switch für ein lokales Netzwerk beschrieben
mit Eingangs- und Ausgangsanschlüssen
zum Empfangen und Weiterleiten von Broadcast- und Unicast-Datenübertragungen
zwischen Netzwerkstationen und einem Koppelpunkt-Schalter für die selektive
Wegewahl (Routing) von Datenübertragungen
zwischen dem Eingang und Anschlüssen.
Da jeder Ausgangsanschluss gesonderte Verbindungen zu dem Koppelpunkt-Schalter
zum Empfangen von Unicast- und Broadcast-Übertragungen hat, kann der Schalter
bzw. Switch gleichzeitig Broadcast- und Unicast-Pakete an jeden
Ausgangsanschluss leiten. Die Broadcast-Paketübertragung durch den Koppelpunkt-Schalter verzögert daher
nicht die Unicast-Paketübertragung,
und die Unicast-Übertragung
zu einem oder mehreren Ausgangsanschlüssen verzögert daher nicht eine gleichzeitige
Broadcast-Übertragung
an alle Ausgangsanschlüsse.
-
Die
obige Beschreibung erfolgte zwar anhand bevorzugter Ausführungsbeispiele
der vorliegenden Erfindung, doch kann ein Fachmann zahlreiche Abwandlungen
an dem bevorzugten Ausführungsbeispiel
durchführen,
ohne dass er die Erfindung im weiteren Sinne verlässt. Die
beigefügten
Ansprüche
sollen daher alle derartigen Abwandlungen abdecken, die im tatsächlichen
Schutzbereich der Erfindung liegen.