-
Die
Erfindung betrifft Routing-Switches bzw. Leitungsführungs-Schalter
oder Leitungsführungs-Weichen
zur Übertragung
digitaler Signale und Verfahren zum Vermitteln digitaler Signale
durch Routing-Switches. Die Erfindung ist insbesondere für ATM-Switches
und Verfahren zum Betrieb von ATM-Switch-Netzen anwendbar.
-
Datenkommunikation
in digitaler Form wird häufig
zur Verteilung von Daten zwischen Computern und in der Telekommunikation
zur Übertragung
von Sprachsignalen verwendet. Bei verteilten Computersystemen sind
lokale Netze (Local Area Networks, LANs) verwendet worden, aber
das Erfordernis, größere Netze
bereitzustellen, hat zu einem Bedarf an zuverlässigen Telekommunikationsnetzen
geführt, die
sowohl Computerdaten- als auch herkömmlichen Sprachverkehr unterstützen. Existierende
Telefonnetze sind dafür
konzipiert, Sprachverkehr weltweit zu übertragen, und solche Systeme
sind für
niedrige Bandbreiten mit geringer Verzögerungszeit zwischen Sender
und Empfänger
optimiert worden, wobei der Verkehr relativ unempfindlich für Störungen und
Datenfehler ist. Lokale Netze, die für die Kommunikation zwischen
Computer verwendet worden sind, haben im allgemeinen über relativ
kurze Entfernungen funktioniert, erfordern aber eine hohe Bandbreite
für Computerdaten,
und in diesem Fall sind die Daten nicht unbedingt empfindlich gegenüber Verzögerungszeiten,
aber Datenfehler oder -auslassungen müssen vermieden werden. Um die
beiden Kommunikationserfordernisse in einem Signalnetz zu mischen,
sind als integrierte Breitbandfernmeldenetze (Broadband Integrated
Services Digital Networks) bezeichnete Systeme vorgeschlagen worden,
und insbesondere sind Systeme mit asynchronem Transfermodus (Asynchronous
Transfer Mode, ATM) vorgeschlagen worden, die mit kleinen, sich
selbst routenden Paketen digitaler Signale arbeiten.
-
Die
Veröffentlichung
von Noboru Endo „Shared
buffer memory switch for an ATM exchange", IEEE transactions an communication,
Bd. 41, Nr. 1, 1. Januar 1993, Seiten 237–245, XP000367768 offenbart
einen Routing-Switch, der für
die Zweirichtungsübertragung
digita ler Signalzellen wenigstens zweier Arten eingerichtet ist,
wobei eine erste Art die Integrität der Zellenübertragung
erfordert, während sie
die Bitrate der Übertragung
akzeptiert, und eine zweite Art einen gewissen Verlust an Zellen
bei der Übertragung
akzeptiert. Bei diesem Switch teilen sich alle Ausgangsports des
Switches den Zellpufferspeicher für die Ausgangswarteschlange,
und der Zellpufferspeicher kann jedem Ausgangsport zugewiesen werden.
Im Ergebnis kann der Switch den erforderlichen Speicherplatz vermindern.
-
Das
Dokument
EP-A-0 710
047 lehrt ein Verfahren und ein System zum Multicasten
bzw. Gruppenrufen von ATM-Zellen. Das Verfahren umfaßt die Schritte
des Lesens einer ersten ATM-Zelle, auf die ein erster Zelllesepointer
zeigt. Dann folgt der Schritt des Übertragens der ersten ATM-Zelle
aus einem ersten Port an eine erste Adresse. Als nächstes folgt der
Schritt des Bestimmens, ob die erste ATM-Zelle aus dem ersten Port
an eine zweite Adresse zu übertragen
ist. Wenn die Übertragung
der ersten ATM-Zelle aus dem ersten Port an die Adressen abgeschlossen
ist, folgt als nächstes
der Schritt des Lesens eines Zellpointers, der auf eine zweite ATM-Zelle
zeigt. Das Verfahren zum Multicasten kann eine Steuereinheit einschließen, die
steuert, wann ein Pointer gelesen wird und wann und mit welcher Adresse
eine ATM-Zelle aus einem Port übertragen wird.
Die Steuereinheit kommuniziert mit den Knoten, Zellen und Pointern.
Das Verfahren zum Multicasten arbeitet beispielsweise mit einem
Schreibpointer, der auf eine letzte ATM-Zelle in der verlinkten
Liste zeigt. Dieses Patent löst
das Problem des Ausräumens
der Notwendigkeit, mehrere Kopien einer einzelnen Zelle zu erzeugen,
um die Zelle unter Verwendung verschiedener VPI/VCIs zu übertragen.
-
Die
Veröffentlichung
von Fischer, W. et al. „An
ATM system and network architecture in field trial", Protokoll der Global
Telecommunications Conference (Globecom), Houston, 29. Nov.–2. Dez.
1993, Institute of Electrical and Electronics Engineers, Seiten
1476–1480,
offenbart eine verallgemeinerte ATM-Netzarchitektur, basierend auf
den Vorschlägen verschiedener
Netzbetreiber. Ein Switch- bzw. Vermittlungselement umfaßt einen
zentralen gemeinsamen Puffer mit logischen Ausgangswarteschlangen und
wird durch die Routing-Information
in jedem internen Zellheader gesteuert. Bei diesem Switch werden
alle Informationszellen aus allen Eingangsleitungen in einen gemeinsamen
Puffer geschrieben und über
die Ausgangsleitungen aus diesem zentralen Puffer übertragen.
Eine zentrale Steuerung mit Adresswarteschlangen, die einzelnen
Ausgängen oder
einer Gruppe von Ausgängen
zugeordnet sind, sorgt für
die korrekte Vermittlung bzw. das korrekte Switchen der Zellen.
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, verbesserte Routing-Switches
zusammen mit verbesserten Verfahren zum Vermitteln bzw. Switchen
von Datenpaketen durch ein Netz von Routing-Switches bereitzustellen,
und sie ist insbesondere für
ATM-Switches und -Systeme anwendbar.
-
In
dieser Beschreibung bedeutet die Bezugnahme auf einen Switch zur
Zweirichtungsübertragung
digitaler Signale einen Switch derart, daß, wenn zwei miteinander verbunden
sind, jeder ein digitales Signal an den anderen ausgeben kann. Switch
1 kann als Quelle digitaler Signale fungieren, die an den als Bestimmungsort
fungierenden Switch 2 gesendet werden, während Switch 2 als Quelle von
Datensignalen fungieren kann, die an den als Bestimmungsort fungierenden
Switch 1 gesendet werden. Die Bezugnahme auf Quelle und Bestimmungsort kann
in einem ausgedehnten Netz von Switches jeweils eine Zwischenstation
bezeichnen.
-
Die
Erfindung stellt einen Routing-Switch zur Übertragung digitaler Signalzellen
wenigstens zwei verschiedener Arten bereit, wobei der Switch eine Mehrzahl
von Eingangsports zum Empfangen von Eingangszellen und eine Mehrzahl
von Ausgangsports zum Ausgeben von Ausgangszellen in einem Mehrbit-Frame,
der eine digitale Signalzelle und Steuerbits beinhaltet, umfaßt, wobei
jeder Ausgangsport aufweist: eine Schaltungsanordnung, um wenigstens
eine Ausgangswarteschlange von Zellen zu identifizieren, die auf
die Ausgabe durch diesen Ausgangsport warten, eine Pufferschaltungsanordnung, die
selektiv sowohl mit den Eingangs- als
auch den Ausgangsports verbindbar ist, zum Halten einer Mehrzahl
von Zellen jeder Art nach dem Empfang durch einen Eingangsport und
vor der Ausgabe durch einen Ausgangsport, und eine Steuerschaltungsanordnung
zum Bestimmen, ob jede Eingangszelle an einem Eingangsport eine
erste oder zweite Art ist, und Bestimmen, zu welcher Ausgangswarteschlange oder
welchen Ausgangswarteschlangen die Zelle hinzugefügt werden
sollte, wobei die Schaltungsanordnung für jeden Ausgangsport umfaßt: einen
jeweiligen Speicherbereich für
jeden Ausgangsport, der eine verkettete Liste von Adressen bereitstellt,
die Pufferorte von Zellen identifizieren, welche die Warteschlange
für diesen
Ausgangsport bilden, und einen Pointerspeicher für vordere und hintere Pointer zu
dem jeweiligen Speicherbereich, um einen Anfang und ein Ende der
Warteschlange für
den Ausgangsport zu identifizieren; wobei die Steuerbits einen Prioritätsindikator
für jede
Zeile beinhalten und wobei die Steuerschaltungsanordnung so betriebsfähig ist, daß sie auf
die Steuerbits reagiert, um die Auswahl jedes Ausgangsports und
jeder Warteschlange für jede
Zelle zu steuern und eine Mehrzahl von Warteschlangen mit jeweiligen
verschiedenen Prioritätsniveaus
an jedem Ausgangsport zu bilden.
-
Vorzugsweise
reagiert die Steuerschaltungsanordnung auf die Steuerbits, um eine
ankommende Zelle selektiv einer Warteschlange an einem einzigen Ausgangsport
oder Warteschlangen an einer Mehrzahl von Ausgangsports zuzuordnen.
-
Vorzugsweise
stellen die Steuerbits eine explizite Angabe bezüglich des erforderlichen Ausgangsports
bereit.
-
Vorzugsweise
beinhaltet die Steuerschaltungsanordnung eine Routing-Tabelle, die
eine Mehrzahl von Ausgangsportindikatoren bereitstellt, und die
Steuerbits identifizieren einen Ort in der Routing-Tabelle, wobei
die Steuerschaltungsanordnung so betriebsfähig ist, daß sie an einem erforderlichen Ort
auf die Routing-Tabelle zugreift, um zu bestimmen, welcher Ausgangsport
oder welche Ausgangsports zu nutzen sind.
-
Vorzugsweise
stellt ein Pfadidentifikator, den die Steuerbits beinhalten, bereit:
(i) eine erste Kennung eines Ausgangsports zur Nutzung durch den Switch
beim Ausgeben der Zelle und (ii) einen zweiten Identifikator eines
Ausgangsports eines weiteren Switches bei Verbindung mit dem Ausgangsport
in einem Netz von Switches.
-
Vorzugsweise
stellt die Steuerschaltungsanordnung an wenigstens einigen der Ausgangsports eine
Mehrzahl von Warteschlangen bereit, von denen wenigstens einige
jeweiligen zweiten Kennungen eines Ausgangsports eines weiteren
Switches zugeordnet sind.
-
Vorzugsweise
ist die Steuerschaltungsanordnung so eingerichtet, daß sie eine
Eingangsschaltungsanordnung und eine Ausgangsschaltungsanordnung
beinhaltet, die Ausgangsschaltungsanordnung ist so eingerichtet,
daß sie
in den Steuerbits Durchflußregelungsindikatoren
bereitstellt, um eine Anhäufung
für Zellen
einer ausgewählten
Art anzuzeigen, wobei die Eingangsschaltungsanordnung auf die Durchflußregelungsindikatoren
reagiert, um die Ausgabe weiterer Zellen der ausgewählten Art
an einen Bestimmungsort, von dem ein Durchflußregelungsindikator für eine Zelle
dieser ausgewählten
Art empfangen wurde, zu verhindern.
-
Vorzugsweise
reagiert die Ausgangsschaltungsanordnung auf einen Mehrzahl von
Warteschlangen, von denen jede verschiedenen zweiten Kennungen eines
Ausgangsports eines weiteren Switches zugeordnet ist, um die Ausgabe
aus einer der Warteschlangen, die einer zweiten Kennung zugeordnet
ist, von der ein Durchflußregelungstoken bezüglich der
gleichen Art von Zelle empfangen wurde, zu verhindern.
-
Die
Erfindung beinhaltet einen Routing-Switch zum Ermöglichen
der Zweirichtungsübertragung
digitaler Signale, die einschließen: eine erste Art, die Integrität der Zellenübertragung
erfordert, jedoch eine veränderliche
Bitübertragungsgeschwindigkeit
akzeptiert, und eine zweite Art, die einen gewissen Verlust an Zellen
bei der Übertragung
akzeptiert, wobei die Steuerschaltungsanordnung auf Steuerbits in
den digitalen Signalzellen reagiert, um Eigenschaften der Übertragung
der Zellen durch den Switch zu bestimmen.
-
Die
Erfindung beinhaltet ein Verfahren zum Übertragen digitaler Signalzellen
wenigstens zwei verschiedener Arten durch einen Routing-Switch, wobei
das Verfahren umfaßt:
Empfangen von Eingangszellen an einer Mehrzahl von Eingangsports, Ausgeben
von Ausgangszellen in einem Mehrbit-Frame, der eine digitale Signalzelle
und Steuerbits beinhaltet, aus einer Mehrzahl von Ausgangsports,
Speichern einer Mehrzahl von Zellen jeder Art in einer Pufferschaltungsanordnung
nach dem Empfang durch einen Eingangsport und vor der Ausgabe durch einen
Ausgangsport, Bestimmen, ob jede Eingangszelle von der ersten oder
zweiten Art ist, Bestimmen, mit einer Steuerschaltungsanordnung,
zu welchem Ausgangsport und zu welcher Ausgangswarteschlange oder
welchen Ausgangswarteschlangen die Zelle hinzugefügt werden
sollte, in Reaktion auf die Steuerbits, und Bilden, in einem jeweiligen Speicher bereich
für jeden
Ausgangsport, einer verketteten Liste von Adressen, die Pufferorte
von Zellen identifizieren, welche die Warteschlange für diesen
Ausgangsport bilden, und Speichern von vorderen und hinteren Pointer,
um einen Anfang und ein Ende der Warteschlange für den Ausgangsport anzuzeigen;
wobei
die Steuerbits eine Priorität
für jede
Zelle anzeigen und wobei die Steuerschaltungsanordnung auf die Steuerbits
reagiert, um eine Mehrzahl von Warteschlangen mit jeweiligen verschiedenen
Prioritätsniveaus
an jedem Ausgangsport zu bilden.
-
Vorzugsweise
reagiert die Steuerschaltungsanordnung auf die Steuerbits, um eine
ankommende Zelle selektiv einer Warteschlange an einem einzigen Ausgangsport
oder Warteschlangen an einer Mehrzahl von Ausgangsports zuzuordnen.
-
Die
Steuerschaltungsanordnung kann auf die Steuerbits reagieren, um
eine explizite Angabe bezüglich
des erforderlichen Ausgangsports bereitzustellen. Alternativ kann
die Steuerschaltungsanordnung auf die Steuerbits reagieren, um einen
ausgewählten
Ort in einer Routing-Tabelle
zu lesen, um die Identität
eines erforderlichen Ausgangsports oder erforderlicher Ausgangsports
zu bestimmen.
-
Vorzugsweise
reagiert die Steuerschaltungsanordnung auf einen Pfadidentifikator,
um bereitzustellen: eine erste Kennung eines Ausgangsports zur Nutzung
durch den Switch beim Ausgeben der Zelle und einen zweiten Identifikator
eines Ausgangsports eines weiteren Switches bei Verbindung mit dem Ausgangsport
in einem Netz von Switches.
-
Vorzugsweise
bildet die Steuerschaltungsanordnung eine Mehrzahl von Warteschlagen
an wenigstens einigen der Ausgangsports, wobei wenigstens einige
der Warteschlangen jeweiligen zweiten Kennungen eines Ausgangsports
eines weiteren Switches zugeordnet sind.
-
Nachfolgend
wird eine Ausführungsform
der Erfindung beispielhaft und unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben, in denen:
-
1 ein
Blockdiagramm eines erfindungsgemäßen ATM-Switch-Systems ist,
-
2 ein
Blockdiagramm eines Routing-Switches zur Verwendung im System von 1 ist,
-
3 schematisch
einen Kommunikationspfad durch zwei Routing-Switches der Vorrichtung von 1 zeigt,
-
4 das
Format eines im System von 1 verwendeten
Zellframes bzw. Zellrahmens zeigt,
-
5 die
Funktionsweise eines Teils des Frames bzw. Rahmens von 4 darstellt,
-
6 die
Funktionsweise des in 5 gezeigten Teils des Frames
detaillierter zeigt,
-
7 eine
alternative Funktionsweise des in 5 gezeigten
Teils des Frames zeigt,
-
8 eine
weitere Funktionsweise des in 7 gezeigten
Teils des Frames zeigt,
-
9 eine
alternative Funktionsweise des in 7 gezeigten
Teils des Frames zeigt,
-
10 ein
Warteschlangensystem für
den Routing-Switch von 2 darstellt,
-
11 die
Funktionsweise eines weiteren Teils des Frames von 4 beim
Bilden der Warteschlangen von 10 zeigt,
-
12 weitere
Details der Funktionsweise der Warteschlangen von 10 zeigt,
-
13 das
Speichersystem darstellt, das zum Identifizieren der Warteschlangen
von 10 verwendet wird,
-
14 die
Speicherpartitionierung für
einen in 2 verwendeten Speicher zeigt,
-
15 einen
Teil des Frame-Formats von 4 darstellt,
der für
die Durchflußregelung
verwendet wird,
-
16 schematisch
die Anordnung von 2 darstellt, wenn Durchflußregelungstoken
von 15 aktiv sind,
-
17 einen
weiteren Teil des Frames von 4 zeigt,
der für
die Steuerung im Fall einer Anhäufung
verwendet wird,
-
18 weitere
Details der Funktionsweise der Anhäufungssteuerung von 17 zeigt,
-
19 ein
Schema ist, das weitere Details des Routing-Switches von 2 zeigt,
und
-
20 ein
Schema der zulässigen
Verbindungen in einem erfindungsgemäßen Netz von Switches zeigt,
-
21 eine
alternative Schaltverbindung zwischen zwei Routing-Switches der
in 2 gezeigten Art zeigt.
-
Die
beschriebene Ausführungsform
betrifft ein Kommunikationsnetz, das eine Mehrzahl von Routing-Switches
beinhaltet, die für
ATM- und LAN-Schaltverbindungen und zentrale Internet-Datenleitungen
sowie Breitbandnetzzugriffssysteme (einschließlich ATM PABX und vermittelte
digitale Verteilungssysteme), PC/Datenstation-Terminal-Adapterkarten
und digita les Heimvideo angewendet werden können. Das System ist so eingerichtet,
daß es
sich selbst routende Pakete digitaler Signale durch eine Mehrzahl
von Routing-Switches in einem Netz überträgt. Jedes Paket umfaßt eine
Datenzelle in einem Mehrbyte-Frame, der Steuerbits beinhaltet, die
beim Bestimmen der Route des Pakets durch jeden Switch sowie der
bei der Durchführung
der Übertragung
dieses Pakets erforderlichen Eigenschaften verwendet werden. Die
Pakete können
von unterschiedlicher Art sein, in Abhängigkeit von der für verschiedene Übertragungseigenschaften
für das
Paket erforderlichen Priorität.
Für einige
Kommunikationsarten, wie z. B. Sprachverkehr, kann die Priorität eine konstante
Bitrate (CBR) sein. Eine andere Art von Verkehr toleriert möglicherweise
eine variable Bitrate (VBR). Für
die Kommunikation zwischen Computer ist die Verzögerungszeit oder zeitliche
Schwankung zwischen aufeinanderfolgenden Paketen möglicherweise
nicht wichtig, sondern die Vermeidung von Fehlern oder Datenverlusten
kann höchste
Priorität haben.
Für eine
solche Kommunikation ist möglicherweise
eine unbekannte Bitrate (UBR) oder bestmögliche bzw. beste verfügbare Bitrate
(ABR) eine akzeptable oder bevorzugte Eigenschaft für die Datenübertragung.
-
Die
beschriebene Ausführungsform
ist so eingerichtet, daß sie
jede der obigen Kommunikationsarten durchführen kann, und jedes Paket
enthält Steuerbits,
um die Art und Weise zu bestimmen, wie die Übertragung des Pakets durch
jeden Routing-Switch durchgeführt
wird. Die Routing-Switches können
als Elemente eines ATM-Switches verwendet werden.
-
Jeder
Routing-Switch weist eine Mehrzahl von Zweirichtungsports für die Eingabe
und Ausgabe von Paketen zusammen mit einem auf dem Chip befindlichen
Puffer zum Speichern von Paketen während der Bildung von Warteschlangen
von Paketen, die auf die Ausgabe an einem oder mehreren der Ports
warten, auf. Den Paketen kann eine einer Mehrzahl von Verkehrsprioritäten zugeordnet
sein, und das System ermöglicht,
daß jedes
Paket in eine Warteschlange für
einen einzigen Ausgangsport eingereiht wird (unicasten bzw. einzelrufen)
oder in Warteschlangen von mehr als einem Ausgangsport eingereiht
wird (multicasten bzw. gruppenrufen). Das Management des Routing-Switch-Chips
kann durch einen externen CPU-Chip gesteuert werden, der mit einem
Managementport des Routing-Switch verbunden ist. Dieser kann die
Zuordnung von Pufferplatz auf dem Routing-Switch-Chip zur Partitionierung
der Pufferkapazität
für verschiedene
Arten von Verkehr steuern. Schwellenwerte für Schwankungen bezüglich der
Zellverzögerung
und die Priorität
bezüglich der
Löschung
von Zellen im Fall einer Anhäufung können durch
Verwendung der externen CPU-Steuerung auf dem Chip programmiert
werden.
-
Ein
schematisches Netz von erfindungsgemäßen Routing-Switches ist in 1 gezeigt.
Dieses Beispiel zeigt drei ATM-Terminals bzw. ATM-Endgeräte 11, 12 und 13,
die so eingerichtet sein können, daß sie Sprachsignale,
Videosignale oder Computerdaten in digitaler Form oder eine Mischung
derselben eingeben oder ausgeben können. Jedes Terminal bzw. Endgerät ist durch
Zweirichtungsverbindungen 17 mit einer jeweiligen Schnittstelle 14, 15 und 16 verbunden.
Jede Schnittstelle ist mit dem ATM-Switch-Gewebe 20 verbunden,
das in diesem Fall drei verschaltete Routing-Switches 21, 22 und 23 umfaßt. Jeder
Routing-Switch ist mit den anderen Switches im Gewebe durch eine
Mehrzahl serieller Zweirichtungsverbindungen verbunden, die jeweils vier
Drähte
umfassen. Zwei Drähte
in jeder Richtung tragen Daten- bzw.
Strobe-Signale. Die Programmierung der Routing-Switches im Switch-Gewebe
wird durch eine Steuer-CPU 25 gesteuert, die durch Zweirichtungsverbindungen 26 mit
jedem der Switches verbunden ist. Jede Schnittstelle 14, 15 und 16 ist durch
eine serielle Zweirichtungsverbindung 27 mit einem jeweiligen
der Switches 21, 22, 23 im Switch-Gewebe
verbunden.
-
2 zeigt
ein vereinfachtes Blockdiagramm eines Routing-Switches 21.
Dieser umfaßt eine
einzige Chipvorrichtung mit einer Mehrzahl von Ports 30,
die jeweils eine Ausgangs-/Eingangsverbindung bereitstellen. Jede
Verbindung weist zwei Ausgangsdrähte 31 und 32 auf,
welche die seriellen Datenpfade für Daten- bzw. Strobe-Signale
bereitstellen. Jede Verbindung weist auch zwei Eingangsdrähte 33 und 34 auf,
die jeweils serielle Datenpfade für in den Switch eingegebene
Daten- und Strobe-Signale bereitstellen. Vom Switch empfangene Datenpakete
werden in einem Speicher gespeichert, der einen Zellpufferpool 35 bereitstellt,
der durch auf dem Chip befindliche Busse 36 mit den Ports 30 verbunden
ist. Jeder Port 30 ist durch einen Bus mit einer Eingangsprozeßschaltungsanordnung 37 zur
Handhabung ankommender Pakete verbunden. Für jeden Port ist eine Schaltungsanordnung 38 vorgesehen, um
im Puffer 35 gespeicherte Warteschlangen von Prozessen
zu identifizieren, die auf die Ausgabe durch den verbundenen Port 30 warten.
Der Chip beinhaltet auch eine Systemserviceschaltungsanordnung 39,
eine Management- und Steuerschaltungsanordnung 40 sowie
eine Zellpoolsteuerschaltungsanordnung 41. Im Speicher
des Chips ist eine Routing-Tabelle 42 zur Verwendung beim
Bestimmen der Route ausgewählter,
durch den Chip übertragener Pakete
vorgesehen.
-
Es
wird verstanden werden, daß die
Routing-Switches in einem ATM-Switch-Gewebe in jeder gewünschten
Konfiguration verbindbar sind. Im vorliegenden Beispiel beträgt die Höchstzahl
von Switches, die aufeinanderfolgend zwischen zwei Schnittstellen
geschaltet sein können,
drei. In anderen Ausführungsformen
können
andere Anzahlen von Switches zwischen zwei Schnittstellen geschaltet
sein.
-
In
3 ist
eine mögliche
Verbindung der Switches
21 und
23 zwischen den
Schnittstellen
14 und
15 gezeigt. In diesem Fall
kann jede der Schnittstellen
14 und
15 so sein,
wie in der
französischen Patentanmeldung
Nr. 9604315 beschrieben.
-
Jede
Schnittstelle weist einen wesentlichen RAM bzw. Schreib-Lese-Speicher 50 auf,
der mit der Schnittstelle verbunden ist, so daß Datenpakete an der Schnittstelle
gespeichert werden können,
wenn ein weiterer Routing-Switch oder ein weiteres Terminal nicht
bereit ist, das Datenpaket von der Schnittstelle zu empfangen. Bei
der in 3 gezeigten Verbindung werden der Schnittstelle 14 ATM-Zellen
zugeleitet und im mit der Schnittstelle 14 verbundenen RAM
zeitweilig gespeichert. Zellen, die aus dem RAM 50 ausgegeben
werden, werden entlang dem Datenpfad 51 befördert, der
mit einem ausgewählten Eingangsport
des Switches 21 verbunden ist. Die Zellen werden im Pool 35 des
Switches 21 gehalten und dann auf dem Datenpfad 52 von
einem ausgewählten
Ausgangsport des Switches 21 zu einem ausgewählten Eingangsport
des Switches 23 ausgegeben. Die Zelle wird dann im Puffer 35 des
Switches 23 bis zur Ausgabe aus einer Warteschlange eines ausgewählten Ausgangsports
des Switches 23 entlang dem Datenpfad 53 zur Schnittstelle 15 gespeichert.
Die Zelle wird dann im mit der Schnittstelle 15 verbundenen
RAM 50 gespeichert, bis ein weiteres ATM-Switch-Netz oder
ein Terminal die Zelle von der Schnittstelle 15 auf dem
Datenpfad 54 empfängt.
-
Das
Bitformat jedes Pakets ist in 4 gezeigt.
Das Paket besteht aus einem 62 Bytes langen Frame. Der Frame besteht
aus einem Header bzw. Kopfsatz, der 6 Bytes lang ist, gefolgt von
einer 52 Bytes langen ATM-Zelle, welche die Daten angibt, welche
die durch die Über tragung
des Pakets auszuführende
Kommunikation darstellen. Der Frame beinhaltet einen Trailer bzw.
Endkennsatz, der 4 Bytes lang ist.
-
In 4 ist
der Header mit 60 bezeichnet, die Datenzelle ist mit 61 bezeichnet,
und der Trailer ist mit 62 bezeichnet. Der größte Teil
des Headers bleibt während
der Übertragung
des Pakets durch eine Reihe von Routing-Switches unverändert. Der Header
wird dem Paket durch die Schnittstelle, wie z. B. die Schnittstelle 14,
auf der Eingangsseite des Switch-Netzes verliehen. Der Header bestimmt
im allgemeinen die Auswahl der Ports, die bei der Übertragung
des Pakets durch das Switch-Netz verwendet werden, sowie die während dieser Übertragung für das Paket
anzuwendenden Handhabungseigenschaften. Der Trailer 62 wird
jedoch am Ausgangsport jedes Routing-Switches verliehen, um dem nächsten Routing-Switch
auf dem Übertragungspfad eine
Anhäufung
am Routing-Switch, der gerade Quelle dieses Pakets war, anzuzeigen.
Folglich wird der Trailer bei der Ausgabe des Pakets durch jeden folgenden
Routing-Switch verändert,
um den Zustand des ausgebenden Routing-Switches anzuzeigen.
-
Die
Felder des Headers
60 sind wie folgt: Die ersten zwei Bits
sind mit AT bezeichnet und stellen die Adressart dar. Die nächsten 20
Bits sind mit PSI bezeichnet und stellen den Pfadauswahlidentifikator dar.
Wenn AT den Wert 1 aufweist, dann wird PSI verwendet, um die explizite
Adresse der Ausgangsports anzugeben, die für drei aufeinanderfolgende
Routing-Switches
erforderlich sind. Wenn AT den Wert 0 aufweist, dann wird der Wert
von PSI verwendet, um eine implizite Adresse bereitzustellen. Dies
wird unten näher
beschrieben. Zwei Bits sind mit EPS bezeichnet, und dieser Wert
wird verwendet, um den PSI-Wert im Fall einer expliziten Adressierung
zu interpretieren. Dies wird weiter unten näher beschrieben. Nach einem
Reservebit sind drei Bits mit VFI bezeichnet. Diese fungieren als
virtueller FIFO („first-in – first-out"; „zuerst
herein, zuerst heraus")-Identifikator
und werden später
bei der Auswahl der Ausgangswarteschlangen für jede Zelle beschrieben. Um
die Löschung
von CBR-Zellen im Fall einer Anhäufung
zu steuern, sind zwei Bits mit CGT bezeichnet, um einen Anhäufungsschwellenwert
zu identifizieren, ein Bit ist mit CGA bezeichnet, um zu identifizieren,
welche Maßnahme
zu ergreifen ist, wenn eine Anhäufung
auftritt, und ein weiteres mit CGI bezeichnetes Bit kann während der Übertragung
einer Zelle festgesetzt werden, um anzuzeigen, daß eine Anhäufung aufgetreten
ist. Sechzehn mit V2V bezeichnete Bits bilden ein Schnittstelle-zu-Schnittstelle-Feld zur
Verwendung beim Zusammenwirken zwischen der eingebenden Schnittstelle
14 und
der ausgebenden Schnittstelle
15. Die Daten der Kommunikation an
sich bilden die zentrale Zelle
61. Der Trailer
62 weist
vier mit CRC bezeichnete Bits auf, die für eine zyklische Redundanzprüfung durch
die Schnittstellen verwendet werden. Weitere fünf mit CLE bezeichnete Bits
werden als Zellverlustschätzer
verwendet, und diese Information wird wiederum durch die Schnittstellen
14 und
15 verwendet,
um die Gesamtzahl der von den Schnittstellen gesendeten und empfangenen
Zellen zu prüfen,
wie in der
französischen
Patentanmeldung Nr. 9604315 beschrieben. Die verbleibenden
Bits des Trailers werden für
Durchflußregelungszwecke,
d. h. zur Regelung des Durchflusses von ABR-Zellen von einem Routing-Switch
zu einem anderen im Fall einer Anhäufung, verwendet. Zweiundzwanzig
dieser Bits sind mit FCT bezeichnet und bilden einen Durchflußregelungstoken.
Das verbleibende, mit Ti bezeichnete Bit wird verwendet, um zu identifizieren,
auf welche von zwei Prioritäten
sich die Durchflußregelungsbits
beziehen, wie später
beschrieben wird.
-
PORTAUSWAHL
-
Wenn
ein Paket an einem Port eines Routing-Switches entweder von einer
Schnittstelle oder von einem anderen Routing-Switch eingegeben wird, decodiert
die Eingangsprozeßschaltungsanordnung 37 Daten
im Header 60 des Pakets, um zu bestimmen, ob die Zelle
akzeptiert oder gelöscht
werden sollte. Bei Akzeptierung wird die Header-Information verwendet,
um zu bestimmen, aus welchem Port oder welchen Ports die Zelle ausgegeben
werden sollte und welche Warteschlange an dem ausgewählten Ausgangsport
oder den ausgewählten
Ausgangsports verwendet werden sollte. Wie bereits erläutert, wird,
wenn der AT-Wert 1 ist, explizite Adressierung verwendet. In diesem
Fall bildet der PSI-Wert vier Ausgangsportnummern, die jeweils durch
fünf Bits identifiziert
sind. Die ersten drei Nummern sind in 5 gezeigt,
und jede identifiziert eine jeweilige Portnummer für drei aufeinanderfolgende
Stufen von Routing-Switches. Wie in 5 dargestellt,
identifizieren die drei aufeinanderfolgenden Stufenindikatoren 65, 66 und 67 jeweils
einen jeweiligen der achtzehn möglichen
Ausgangsports aufeinanderfolgender Routing-Switches. Die Bestimmung,
welches der in 5 gezeigten drei Elemente 65, 66 und 67 sich auf
welche der aufeinanderfolgenden Routing-Switch-Stufen bezieht, erfolgt durch
den EPS-Wert. Der EPS fungiert als Pointer für jeden Routing-Switch, um
anzuzeigen, welches Fünf-Bit-Element
des PSI-Werts durch diesen Routing-Switch zu verwenden ist, um den
Ausgangsport zu identifizieren. Bei jedem Vermitt lungsschritt wird der
EPS-Wert um eins vermindert, um bei der Bewegung von einem Switch
zum nächsten
auf folgende Fünf-Bit-Elemente
des PSI zu zeigen. Wenn die Eingangsprozeßschaltungsanordnung 37 jedes
Switches das relevante Element des PSI decodiert, um den für diesen
Switch erforderlichen Ausgangsport zu identifizieren, ersetzt sie
dieses Element des PSI durch einen Wert, der den zur Eingabe dieses
Pakets verwendeten Eingangsport anzeigt. Dies unterstützt die
Identifikation des Vorwärts-Frame-Senders.
Das vierte Element des PSI, das von den drei aufeinanderfolgenden
Routing-Switches nicht verwendet wird, wird beim Routen bzw. Leitungsführung der
Zelle durch die Ausgangsschnittstelle verwendet. 6 zeigt
die Verwendung des Elements 65 zur Auswahl des Ports 70 eines
Routing-Switches 71, wohingegen das Element 66 verwendet
wird, um den Ausgangsport 72 eines Switches 73 der
zweiten Stufe auszuwählen,
und das Element 67 verwendet wird, um einen Ausgangsport 74 eines
Switches 75 der dritten Stufe auszuwählen.
-
In
allen obigen Beispielen der expliziten Adressierung hat der PSI-Wert
zur Folge, daß die Zelle
in eine Warteschlange an nur einem Ausgangsport jedes Routing-Switches
eingereiht wird, so daß ein
Unicasten der Zelle erfolgt.
-
In
Fällen,
in denen AT einen Wert 0 aufweist, wird implizite Adressierung verwendet.
In diesem Fall werden nur zwölf
Bits des PSI-Indikators verwendet, und sie adressieren einen Ort
in der Routing-Tabelle 42 des Switches. Die Routing-Tabelle 42 umfaßt einen
beschreibbaren Speicher, in den von der Steuer-CPU 25 Werte
geladen wurden. Der PSI-Wert zeigt auf eine ausgewählte Adresse
in der Routing-Tabelle, wie in 7 gezeigt,
und eine implizite Markierung 80 wird aus der Tabelle in
die Zellpoolsteuerschaltungsanordnung 41 gelesen. Das Format dieser
Markierung ist in 8 näher gezeigt. Die Markierung
umfaßt
zwanzig Bits. Bit 0 ist mit F bezeichnet. Wenn F den Wert 0 aufweist,
dann ist die Zelle zum Multicasten vorgesehen und dadurch in eine
Warteschlange an mehr als einem Ausgangsport einzureihen. Wenn F
den Wert 1 aufweist, dann erfolgt ein Unicasten der Zelle, und die
Zelle wird in eine oder mehrere Warteschlange(n) eingereiht, aber nur
an einem einzigen Ausgangsport. Die verbleibenden neunzehn Bits
identifizieren jeweilige Ausgangsports. Bit 1 identifiziert den
Port 0, der nur für
Managementzwecke verwendet wird. Die verbleibenden Bits 2–19 identifizieren
jeweils die Ports 1–18,
die für die
Ausgabe von Datenpaketen verwendet werden. Wenn die Bit-Position
der Markierung den Wert 1 aufweist, dann ist dieser Ausgangsport
zu ver wenden. Wenn die Bit-Position den Wert 0 aufweist, dann ist der
entsprechende Port nicht zu verwenden. 9 zeigt
die Position, in der die implizite Markierung 80 einen
Wert F = 1 aufweist, so daß die
Zelle zum Unicasten vorgesehen ist. In diesem Fall identifizieren die
Bit-Positionen 15–19 den
Ausgangsport, der durch den Routing-Switch zu verwenden ist, der
dieses Paket eingegeben hat. Die Bit-Positionen 10–14 identifizieren
den Ausgangsport, der durch den nächsten Routing-Switch in der
im Netz verwendeten Reihe von Routing-Switches zu verwenden ist.
Auf diese Weise identifiziert die implizierte Markierung die durch
zwei aufeinanderfolgende Routing-Switches zu verwendenden Ausgangsports.
-
WARTESCHLANGENAUSWAHL
-
Nach
der Identifikation des erforderlichen Ausgangsports oder der erforderlichen
Ausgangsports für
jede eingegebene Zelle muß entschieden werden,
in welche Warteschlange oder welche Warteschlangen an dem ausgewählten Ausgangsport oder
den ausgewählten
Ausgangsports die Zelle einzureihen ist. Wie in 10 dargestellt,
weist jeder Routing-Switch,
wie z. B. der Switch 21, neunzehn Ausgangsports 30 auf.
Port 0 wird für
interne Managementzwecke verwendet, und die Ports 1–18 werden
verwendet, um Daten für
die durch das Switch-Gewebe übertragene
Nachricht zu kommunizieren. Jeder Ausgangsport 30 kann
acht verschiedene, mit F0–F7
bezeichnete Prioritäten
handhaben. Jeder Port kann eine Warteschlange oder Warteschlangen
für Zellen
jeder dieser verschiedenen bestimmten Prioritäten aufweisen. Zellen mit der
Priorität
F0 werden mit höchster
Priorität
behandelt, so daß sie
vom Ausgangsport vorrangig vor Zellen ausgegeben werden, die aus
Warteschlangen mit niedrigerer Priorität stammen. Für jede der
Prioritäten F0–F5 ist
nur eine Warteschlange pro Port zulässig. Jede dieser Warteschlangen
kann entweder CBR-Zellen oder ABR-Zellen handhaben. Jede Warteschlange
besteht jedoch nur aus Zellen der gleichen ausgewählten Art.
Für die
Prioritäten
F6 und F7 weist jede eine Standard-Warteschlange für CBR- oder
ABR-Zellen, ähnlich
wie F0–F5,
auf. Jede der Warteschlangen für
die Prioritäten
F0 bis F7, die für ABR
oder CBR verwendet werden können,
ist dem geregelten Verkehr (z. B. ABR), der durch Durchflußregelungstoken
geregelt wird, oder dem ungeregelten Verkehr (z. B. CBR), welcher
der Löschung
statt der Durchflußregelung
unterliegt, zugeordnet. Die Zuordnung jedes Prioritätsniveaus
zur einen oder anderen dieser Arten wird durch die Steuer-CPU 25 gesteuert,
welche die erforderlichen Werte in einem Warteschlangenzuordnungsregister 95 speichert, das
an zeigt, welches Prioritätsniveau
für geregelten oder
ungeregelten Verkehr verfügbar
ist. Das Register 95 enthält auch Indikatoren, um den
ungeregelten Verkehr in mehr als ein Prioritätsniveau zu unterteilen. In
diesem Beispiel kann der CBR-Verkehr zwei verschiedene Prioritätsniveaus
CBR0 und CBR1 aufweisen. Das Register 95 hält Werte,
um anzuzeigen, welche der Prioritäten F0–F7 CBR0 zugeordnet sind und
welche CBR1 zugeordnet sind. Auf diese Weise zeigt der Prioritätsindikator
im Header jedes Frames zusammen mit den in das Register 95 geladenen
Daten an, ob der Verkehr geregelt oder ungeregelt ist und wie sein
Prioritätsniveau
ist.
-
Für die Priorität F6 können neunzehn
zusätzliche
Warteschlangen F6.0-18 nur für
den geregelten ABR-Verkehr bereitgestellt sein. Jede dieser Warteschlangen
entspricht einem bestimmten Ausgangsport für den nächsten Routing-Switch in der
Reihe von Routing-Switches. In ähnlicher
Weise können
für die
Priorität
F7 neunzehn zusätzliche
Warteschlangen F7.0-18 nur für
den geregelten ABR-Verkehr bereitgestellt sein, wobei jede Warteschlange
einem bestimmten Ausgangsport des nächsten Routing-Switches in
der Reihe von Switches entspricht. Die Warteschlangen F6.0 und F7.0
werden für
Pakete verwendet, die nur interne Managementfunktionen ausführen und
für den
Port 0 des nächsten
Switches bestimmt sind. Zellen, die in eine der Warteschlangen F6.0-18
oder F7.0-18 eingereiht werden, können nur ABR-Zellen sein, für die ein
Unicasten erfolgt. Die anderen Warteschlangen können zum Unicasten oder Multicasten
sein. Im Zusammenhang mit 9 war ersichtlich,
daß ABR-Zellen, für die ein
Unicasten erfolgte, eine Angabe von der impliziten Markierung 80 (Bit-Positionen 10–14) bezüglich des
ausgewählten Ports
für den
nächsten
Routing-Switch in der Reihe von Routing-Switches erhielten. Folglich
weiß jeder Routing-Switch,
der eine implizite Markierung der in 9 gezeigten
Art handhabt, welcher Ausgangsport für den derzeitigen Routing-Switch
zu verwenden ist und welcher Ausgangsport für den nächsten Routing-Switch erforderlich
ist. Folglich können
Zellen dieser Art in eine ausgewählte
Warteschlange für die
Priorität
F6.0-18 oder die Priorität
F7.0-18 eingereiht werden, wobei die ausgewählte Warteschlange spezifisch
für einen
ausgewählten
der Ausgangsports des nächsten
Switches in der Abfolge bestimmt ist. Dies hilft, eine Blockierung
des Kopfs der Leitung zu verhindern. Mit anderen Worten, können einige Zellen
der Priorität
F6 oder F7 dafür
vorgesehen sein, durch eine Ausgangsstufe eines nachfolgenden Switches übertragen
zu werden, an dem eine Anhäufung vorliegt.
Eine solche Zelle am Kopf einer Warteschlange verhindert die Ausgabe
anderer Zellen, die für
nicht blockierte nachfolgende Ausgabeports vorgesehen sein können. Folglich
wird die Warteschlange durch die Eintragung am Kopf der Leitung
blockiert. Durch die Bereitstellung einer Mehrzahl separater Warteschlangen
für jede
der Prioritäten
F6.0-18 und F7.0-18, wobei jede Warteschlange einem spezifischen
anderen Ausgangsport des nächsten
Routing-Switches zugewiesen ist, können solche Warteschlangen,
die für
nachgeschaltete nicht verstopfte Ausgangsports vorgesehen sind,
ohne Verzögerung ausgegeben
werden.
-
Die
Auswahl der Warteschlange wird wie in 11 gezeigt
bestimmt. Der VFI-Indikator vom Header 60 liefert einen
Zahlenwert, der einer der Prioritäten F0–F7 entspricht. In Kombination
mit der Decodierung des PSI-Werts ermöglicht dieser eine korrekte
Auswahl des erforderlichen Ausgangsports oder der erforderlichen
Ausgangsports und der korrekten der mehreren möglichen Warteschlangen F0–F7 an dem
ausgewählten
Ausgangsport oder den ausgewählten
Ausgangsports. Wenn die Decodierung des Headers anzeigt, daß die Zelle
eine zum Unicasten vorgesehene ABR-Zelle der Priorität 6 oder
7 mit Identifikation des Ausgangsports des nächsten Switches ist, dann wird
sie der korrekten der möglichen
neunzehn Warteschlangen entweder für die Priorität F6.0-18
oder die Priorität
F7.0-18 hinzugefügt,
in Abhängigkeit
vom Ausgangsport des nächsten
Switches, der von der in 9 gezeigten impliziten Markierung
identifiziert wurde.
-
Es
ist daher ersichtlich, daß jeder
Ausgangsport die Möglichkeit
von vierundsechzig gleichzeitigen Warteschlangen aufweist. Eine
Warteschlange für
jede der Prioritäten
F0–F5
und zwanzig Warteschlangen für
jede der Prioritäten
F6 und F7.
-
10 zeigt
auch an, daß die
Steuerschaltungsanordnung 39, 40 und 41 eine
Anzahl von Zählern
und Schwellenwertspeichern zur Verwendung bei der Durchflußregelung
und Anhäufungssteuerung
einschließt.
Die Zähler 90 sind
zum Zählen
der Anzahlen verschiedener Arten von Zellen im Puffer 35 vorgesehen.
Ein Speicher 91 ist zum Festsetzen von Schwellenwerten
für verschiedene
Arten von Zellen im Puffer 35 vorgesehen. Die Zähler 92 sind vorgesehen,
um auf die Warteschlangenlänge
pro Port zu reagieren. Ein Speicher 93 ist vorgesehen, um
Schwellenwerte für
die von den Zählern 92 angezeigte
Warteschlangenlänge
pro Port festzusetzen.
-
Zusätzlich ist
es notwendig, daß die
Durchflußregelung
die Richtung identifiziert, in der die Zellen einen Switch in der
Abfolge von Switches passieren. In diesem Beispiel kann jeder Switch
die Zellübertragung
in zwei entgegengesetzten Richtungen entlang einer in 3 gezeigten
linearen Kette durchführen.
Eine dieser Richtungen wird als Aufwärtsrichtung und die andere
als Abwärtsrichtung
bezeichnet. Die Ports 30 sind entsprechend entweder als
Aufwärtsrichtungsport
oder Abwärtsrichtungsport identifiziert,
in Abhängigkeit
von der Richtung, in der eine Zelle durch diesen Port übertragen
wird. Dies wird im Zusammenhang mit der Funktionsweise des Puffers 35 näher beschrieben.
Um die Kennzeichnung jedes der Ports 30 zu identifizieren,
ist ein Aufwärts-/Abwärtssteuerregister 94 vorgesehen,
um jeden Port als einen Aufwärtsrichtungsport
oder Abwärtsrichtungsport
zu identifizieren, und jede Zelle wird als Aufwärtszelle oder Abwärtszelle
gepuffert, in Abhängigkeit
von der Kennzeichnung des Ports, durch den sie eingegeben wurde.
-
Die
Verhinderung einer Blockierung des Kopfs der Leitung ist in 12 näher dargestellt.
In diesem Fall wird eine ankommende Zelle 100 mit der Priorität F6 oder
F7 in die passende Warteschlange FX.0–FX.18 am mit 101 bezeichneten
Port n eingereiht. Dies ist ein Ausgangsport eines Switches der Stufe
m im Netz. Der Ausgangsport 101 ist mit einem Eingangsport
des Switches der Stufe m + 1 verbunden. Neunzehn verschiedene Warteschlangen
am Port n sind jeweils auf einen jeweiligen anderen Ausgangsport
des Switches der Stufe m + 1 gerichtet. Wenn einer der Ausgangsports
der Stufe m + 1 eine Warteschlange aufweist, die einen Schwellenwert
erreicht, der eine Anhäufung
anzeigt, dann wird ein Durchflußregelungsmechanismus
aktiv, der die bereits beschriebenen Durchflußregelungstoken verwendet,
um dem Switch der Stufe m anzuzeigen, daß eine der Warteschlangen FX.0–FX.18,
die für
einen verstopften Port der Stufe m + 1 bestimmt ist, nicht ausgegeben
werden sollte, bis die Anhäufung
behoben ist, angezeigt durch den Empfang eines Frames, der sich
von der Stufe m + 1 zur Stufe m bewegt und die Bereinigung des relevanten
Ports der Stufe m + 1 anzeigt.
-
MECHANISMUS ZUR WARTESCHLANGENIDENTIFIKATION
-
Die
Art und Weise, wie die Zellen im Puffer 35 für jede Warteschlange
an einem Ausgangsport identifiziert werden, ist in 13 dargestellt.
Der Puffer 35 ist 62 Bytes breit, so daß er einen Frame pro Reihe
hält. Der
Puffer kann 512 Reihen halten. Verschiedene Reihen halten eine Zelle
zur Ausgabe bereit, während
andere Reihen leer sind und auf die Eingabe einer Zelle warten,
und diese leeren Reihen weisen freie Adressen auf, die durch eine
Warteschlange freier Adressen zur Verwendung durch die Eingangssteuerschaltungsanordnung
angezeigt werden. Die Ausgangssteuerschaltungsanordnung 38 und
die Zellpoolsteuerschaltungsanordnung 41 schließen einen
beschreibbaren Speicher ein, wie in 13 gezeigt.
Dieser schließt
eine jeweilige Speichertabelle für
jeden Port ein, die einen Warteschlangendeskriptor für jede Warteschlange
an diesem Port angibt. Diese Speicherbereiche sind mit 111 für Port 1
bis 128 für
Port 18 bezeichnet. Ein separater Managementwarteschlangendeskriptor
ist im Speicherbereich 129 vorgesehen, und ein Deskriptor für die Warteschlange
freier Adressen ist im Speicherbereich 130 vorgesehen.
Die Liste der Warteschlangendeskriptoren ist im allgemeinen für jeden Port ähnlich und
wird mit Bezug auf den Speicherbereich 111 für Port 1
beschrieben. Dieser beinhaltet eine Liste von Deskriptoren. Für jede einzelne
Warteschlange der Prioritäten
F0–F5
ist ein Deskriptor 131 vorgesehen. Für die Priorität F6 sind
zwanzig Deskriptoren 132 für jede der zwanzig Warteschlangen vorgesehen,
auf die in 10 für die Priorität F6 Bezug
genommen wird. In ähnlicher
Weise sind zwanzig Deskriptoren 133 für jede der Warteschlangen für die Priorität F7 vorgesehen.
Jeder der Deskriptoren im Speicherbereich 111 umfaßt einen
Warteschlangenanfangspointer 135 und einen Warteschlangenendpointer 136.
Ein zweiter beschreibbarer Speicherbereich 134–138 ist
für jeden
Port vorgesehen. Jeder Speicherbereich 134–138 weist
Reihenpositionen auf, die Reihenpositionen des Puffers 35 entsprechen.
In 13 bezieht sich der Speicherbereich 134 auf
den Port 1, und ähnliche
Speicherbereiche sind für
jeden Port vorgesehen, bis zum Speicherbereich 138, der
für den
Port 18 vorgesehen ist. Ein Managementspeicherbereich 139 wird
durch den Managementwarteschlangendeskriptor 129 identifiziert,
und der Deskriptor für
die Warteschlange freier Adressen zeigt auf einen Speicherbereich
freier Adressen 140. Die Funktionsweise jedes Speicherbereichs 134–138 sowie 139 und 140 ist
im allgemeinen ähnlich
und wird mit Bezug auf den Port 1 betreffenden Bereich 134 beschrieben.
Der vordere Deskriptor 135 zeigt die Reihenposition des
Speicherbereichs 134 an, die der Zelle im Puffer 35 entspricht, die
sich am Kopf der Warteschlange befindet. Diese identifiziert die
erste von dieser Warteschlange bei ihrer Ausgabe zu verwendende
Zelle. Der Bereich 134, auf den der vordere Pointer 135 gezeigt
hat, zeigt die nächste
Pufferreihe an, um die zweite in dieser Warteschlange auszugebende
Zelle zu lokalisieren. Im Zuge der Lokalisierung jeder Zelle in
der Warteschlange identifiziert die entsprechende Reihe des Speicherbereichs 134 die
Position der nächsten
Zelle für
diese Warteschlange. Dies setzt sich fort, bis die letzte Zelle
in der Warteschlange durch den hinteren Pointer 136 lokalisiert
wird. Obwohl die Position dieser Zelle im Puffer 35 identifiziert
werden kann, weist die entsprechende Reihe des Speicherbereichs 134 keine
Angabe einer nächsten
Adresse für
eine Zelle in dieser Warteschlange auf, bis dieser Reihe eine weitere
Zelle hinzugefügt
wird. Zu diesem Zeitpunkt wird der hintere Pointer 136 angepaßt. Die
Handhabung der Warteschlange für
Managementzellen, die durch den Port 0 übertragen werden, erfolgt in ähnlicher
Weise durch den Deskriptor 129 und die Speicherliste 139.
In ähnlicher
Weise wird die Liste freier Adressen im Puffer 35 zur Verwendung
durch im Puffer 35 ankommende Zellen durch den Deskriptor 130 und
die Liste 140 gehandhabt.
-
Es
ist daher ersichtlich, daß die
Speicherbereiche 134–138 eine
Mehrzahl verlinkter Listen bilden, jede für einen jeweiligen Ausgangsport.
Jede Position in der Liste stellt einen Link zur nächsten Zelle
in der Warteschlange bereit, so daß ein Identifikationsthread
aufeinanderfolgender Zellen in einer Warteschlange durch die Speicherpositionen
in jeder der Listen 134–138 bereitgestellt
wird. Die Verlinkung jeder Abfolge durch die Speicherbereiche 134–138 bewirkt,
daß die
Speicherbereiche als virtuelle FIFOs fungieren.
-
Es
wird verstanden werden, daß für jede der Prioritäten F0–F5 in jedem
der Speicherbereiche 134–138 ein einziger
Thread von eine Warteschlange bildenden Zellidentifikatoren existiert.
Für die
Prioritäten
F6 und F7 existiert jedoch eine Mehrzahl von Threads durch jeden
der Speicherbereiche 134–138. Diese Mehrzahl
von Threads für
jeden Speicherbereich besteht aus einem diskreten Thread für jede der Warteschlangen
F6.0-18 und F7.0-18 sowie für
die Standard-F6- und -F7-Warteschlange, die entweder ABR oder CBR
hält. Im
Fall der für
die Warteschlangen F6.0-18 und F7.0-18 existierenden mehreren Warteschlangen
sind die auf diesen Listen identifizierten Zellen ABR-Zellen, die
zum Unicasten vorgesehen sind, so daß sie nur in einem einzigen
der Speicherbereiche 134–138 identifiziert
werden, der dem ausgewählten
Ausgangsport entspricht, durch den die Zelle ausgegeben werden kann.
Ferner kommt jede Zelle auf einer Liste, auf der im gleichen Speicherbereich 134–138 mehrere
Threads existieren, nur in einem Thread in diesem Speicherbereich vor,
da sie zum Unicasten vorgesehen ist, sowohl für den derzeitigen Switch, der
die Zelle ausgibt, als auch am nächsten
Switch in der Abfolge. Folglich entstehen bei der Lokalisierung
nächster
Adressen in den im gleichen Speicherbereich 134–138 gehaltenen
mehreren Threads, keine Mehrdeutigkeiten.
-
Im
Fall der Priorität
F0–F5
sowie der Standardwarteschlangen (die CBR oder ABR halten) für F6 und
F7 können
diese Warteschlangen Zellen beinhalten, die zum Multicasten vorgesehen
sind, so daß sich
die gleiche Zelle in mehr als einer Warteschlange und dadurch in
mehr als einem Thread befinden kann. In diesem Fall befindet sich
jedoch jede Mehrzahl von Threads, welche die gleiche Zelle identifizieren,
in verschiedenen Speicherbereichen 134–138 entsprechend
dem relevanten Ausgangsport. Folglich ermöglichen die separaten Listen,
die in den separaten Speicherbereichen 134–138 geführt werden,
die Lokalisierung der korrekten nächsten Zelle für jede Warteschlange,
ungeachtet dessen, welche Warteschlange die Entnahme der Zelle aus dem
Puffer 35 verursacht hat.
-
PUFFERPARTITIONIERUNG
-
Um
unterschiedlichen Verkehr, der verschiedene Handhabungseigenschaften
erfordert, wie z. B. CBR und ABR, wirksam durchzuführen, ist
es wichtig, daß der
Pufferplatz auf dem Switch-Chip nicht nur von einer Verkehrsklasse
oder einem bestimmten Port genutzt wird. Folglich muß die Anhäufung im Puffer
an sich und die Anhäufung
an jedem einzelnen Port überwacht
werden, um entweder eine Zelllöschungsmaßnahme für CBR-Zellen
oder Durchflußregelung
für ABR-Zellen
zu veranlassen, wenn ein Switch überlastet
ist oder sich für
eine bestimmte Zellart diesem Zustand nähert. Um die Aufteilung der Pufferkapazität zwischen
verschiedenen Verkehrsarten zu optimieren, werden im Puffer 35 eine
Anzahl von Partitionen eingerichtet, um die akzeptable Kapazität der Anzahl
gespeicherter Zellen jeder einer Anzahl von bestimmten Paketarten
zu beschränken. Zuerst
wird eine Partition 150 eingerichtet, um das Maximum an
CBR-Zellen anzuzeigen, daß im
Puffer gehalten werden kann. In dieser Partition werden zwei separate
Partitionen 151 und 152 für jeweilige verschiedene Prioritäten von
CBR-Zellen, die mit CBR0 und CBR1 bezeichnet sind, eingerichtet.
Bei der Eingabe einer CBR-Zelle kann der Switch verschiedene Prioritäten bestimmen,
in Abhängigkeit von
der Programmierung des Registers 95 und dem VFI-Indikator
im Frame-Header, so daß eine
Zelle entweder als eine CBR0-Zelle mit hoher Priorität oder eine
niedrigere CBR1-Zelle gehalten wird. Ein Bereich in der Partition 150 ist
mit 153 bezeichnet und stellt einen Überlappungsbereich dar, der
von Zellen mit der Kennzeichnung CBR0 oder CBR1 genutzt werden kann.
Eine weitere Partition 160 im Puffer 35 ist ABR-Zellen
zugeordnet. Wie bereits erläutert, können Zellen
als Aufwärts-
oder Abwärtszellen
gekennzeichnet sein. Im Fall von ABR-Zellen hat eine Anhäufung zur
Folge, daß in
ein sich in Aufwärtsrichtung
bewegendes Paket Durchflußregelungstoken eingeschlossen
werden, um den Durchfluß von
Paketen zurück
zum Switch in Abwärtsrichtung
zu regeln. In ähnlicher
Weise werden Durchflußregelungstoken
für Pakete
verwendet, die sich in Auwärtsrichtung
bewegen, um zu verhindern, daß sich
Pakete zum gleichen Switch in Aufwärtsrichtung zurückbewegen.
Um eine Blockierung zu verhindern, die dadurch verursacht wird,
daß am
gleichen Switch gleichzeitig Durchflußregelung in entgegengesetzten Richtungen
erfolgt, muß die
Anhäufung
für sich
in Aufwärts-
und Abwärtsrichtung
bewegende ABR-Zellen separat geprüft werden. Aus diesem Grund
weist die Partition 160 Subpartitionen auf, um die Pufferzuordnung
für ABR-Signale
in Aufwärtsrichtung
und Abwärtsrichtung
separat zu handhaben. Es ist auch vorteilhaft, die Anhäufung für ABR-Zellen
der Priorität 0–5 separat
von denen der Priorität
6–7 zu überwachen.
Aus diesem Grund weist die Partition 160 vier separate
Partitionen 161, 162, 163 und 164 auf,
die garantierten Pufferplatz bis zu ihren Schwellenwerten für folgende
ABR-Zellen bereitstellen: 0–5
aufwärts, 6–7 aufwärts, 0–5 abwärts bzw.
6–7 abwärts. Es
ist ein weiterer Überlappungsbereich 165 vorgesehen, der
für Zellen
jeder dieser Arten verwendet werden kann, die durch die Partitionen 161, 162, 163 und 164 repräsentiert
werden. Es gibt auch Überlappungsbereiche
zur Verwendung durch jede dieser ABR-Zellen zwischen den Partitionen 161, 162, 163 und 164. Wenn
die in einem der Bereiche 161–165 gespeicherten
Zellen die für
diese Partitionen festgesetzten Schwellenwerte erreichen, werden
Durchflußregelungstoken
erzeugt, um eine weitere Eingabe von Zellen dieser Art in den Switch-Puffer
zu beschränken.
Es gibt jedoch unvermeidbar eine Zeitverzögerung, bis der beschränkte Durchfluß wirksam
wird, da die Durchflußregelung
nicht sofortig sein kann. Aus diesem Grund ist eine Spielraumpartition 166 vorgesehen,
um alle ankommenden ABR-Zellen zu handhaben, die bereits auf dem
Weg zum Switch waren, bevor andere Switches auf die Durchflußregelungstoken
reagiert haben.
-
Die
Zellkapazität
für jede
der im Puffer von 14 eingerichteten Partitionen
wird durch einen jeweiligen Speicherschwellenwert bestimmt, der
im in 10 gezeigten Speicher 91 gehalten
wird. Diese Schwellenwerte können
durch die Steuer-CPU 25 festgesetzt werden. Der Inhalt
des Puffers 35 wird durch die Zähler 90 (10) überwacht
und mit den im Speicher 91 gespeicherten Schwellenwerten
verglichen. Zusätzlich
zur Überwachung
der Anzahlen der im Puffer 35 insgesamt gespeicherten Zellen
erfolgen auch Zählungen
pro Port. Jeder Port weist drei Zähler (92 in 10)
auf. Ein Zähler
liefert eine Zählung
der Gesamtzahl an CBR0-Zellen, die eine Warteschlange an diesem
Port bilden. Ein zweiter Zähler liefert
eine Zählung
der Gesamtzahl an CBR1-Zellen, die eine Warteschlange an diesem
Port bilden. Der dritte Zähler
für jeden
Port zählt
die Gesamtzahl an ABR-Zellen der Priorität 6 und 7, die auf die Ausgabe durch
diesen Port warten. Ein Zählungsschwellenwert
für jeden
dieser drei Zähler
wird ebenfalls in einem in 10 gezeigten
Speicher 93 gehalten. Der Vergleich der gezählten Werte
mit den Schwellenwerten entweder für die Puffergesamtwerte oder
die Werte pro Port kann verwendet werden, um zu bewirken, daß die Eingangs-
oder Ausgangsschaltungsanordnung des Switches eine Löschungsmaßnahme für ankommende
Zellen oder die Ausgabe von Durchflußregelungstoken zu Beschränkung der
Ankunft weiterer Zellen veranlaßt.
Im Fall des Zählers 92,
der die Gesamtlänge
der Warteschlangen von ABR 6- und ABR7-Zellen zählt, muß dieser die zwei Warteschlangen
mit verschiedener Priorität
nicht separat zählen.
Die Priorität
6 ist höher
als die Priorität 7.
Folglich ist der Schwellenwert für
die Anzahl der Priorität
7 niedriger eingestellt als der für die zulässige Anzahl von Zellen der
Priorität
6. Sobald die Summe den Schwellenwert für Zellen der Priorität 7 erreicht,
werden Durchflußregelungstoken
zur Verhinderung der weiteren Eingabe von ABR-Zellen der Priorität 7 für diesen Port ausgegeben, so
daß noch mehr
Zellen der Priorität
6 akzeptiert werden können, bis
die Zählung
den für
die Summe der Priorität
6 und Priorität
7 festgelegten Schwellenwert erreicht.
-
Um
eine Blockierung aufgrund des Durchflußregelungsmechanismus zu verhindern,
arbeitet das obige Beispiel mit geregeltem Durchfluß in Aufwärts- und
Abwärtsrichtung.
Zellen, die in einer Aufwärtspartition
des Puffers gespeichert sind, können sich
zu einer Aufwärts-
oder Abwärtspartition
des Puffers eines benachbarten Switches im Netz bewegen. Zellen,
die in einer Abwärtspartition
eines Puffers gehalten werden, können
sich nur zu einer Abwärtspartition
eines benachbarten Switches bewegen. Eine mit einem Switch-Netz
verbundene Eingangsschnittstelle muß die Zelle stets einem Aufwärtsbereich
des Puffers des ersten mit der Schnittstelle verbundenen Switches
zuleiten. Die Ausgangsschnittstelle am Ende der Switch- Abfolge kann eine Zelle
entweder von einer Abwärts-
oder einer Aufwärtspartition
des Puffers des letzten Switches in der Abfolge empfangen.
-
DURCHFLUSSREGELUNG FÜR ABR-ZELLEN
-
Wenn
irgendwelche Zähler
feststellen, daß eine
Hemmung des ABR-Durchflusses einsetzen muß, wird durch die Ausgangsschaltungsanordnung des
Switches ein Durchflußregelungstoken
zur Beschränkung
des Durchflusses erzeugt und bildet einen Teil des Trailers des
Pakets, das von dem Switch ausgegeben wird. Das Format des Durchflußregelungstokens
ist in 15 dargestellt. Die Art und Weise,
wie dieser im Switch-Netz wirkt, ist in 16 schematisch
dargestellt. 16 entspricht der in 3 gezeigten
Anordnung. In diesem Fall weist der Switch 21 ein für eine bestimmte
Art von ABR-Verkehr festgesetztes Schwellenniveau 170 auf,
und dieser Schwellenwert wurde von der im Pool 35 gespeicherten
relevanten Verkehrsart erreicht. Im dargestellten Fall kann der
Switch 21 weiteren Verkehr dieser Art nicht an den nächsten Switch 23 in
der Abfolge ausgeben, da der Switch 23 ebenfalls einen Pufferinhalt
für die
gleiche Art von Verkehr aufweist, der das für den Switch 23 festgesetzte
Schwellenniveau 171 erreicht hat. Folglich zeigen Durchflußregelungstoken,
welche die Leitung 172 vom Switch 23 zurück zum Switch 21 passieren,
dem Switch 21 Gegendruck an, um eine weitere Bewegung von
Zellen dieser Art vom Switch 21 zum Switch 23 zu
verhindern. Da der Switch 21 voll von Zellen dieser Art
ist, sendet er ebenfalls Durchflußregelungstoken aus und zeigt
dadurch entlang der Leitung 173 der Eingangsschnittstelle 14 Gegendruck
an. Dies verhindert, daß die
Schnittstelle 14 weitere Zellen dieser bestimmten Art an
den Switch 21 sendet, bis der Gegendruck 173 behoben
wurde. In der Zwischenzeit werden weitere ATM-Zellen 175,
die an der Schnittstelle 14 ankommen, im mit der Schnittstelle 14 verbundenen
RAM 50 gespeichert. Der RAM 50 kann einen programmierten
Schwellenwert aufweisen, der mit 176 bezeichnet ist, aber,
wie dargestellt, übersteigt
der Inhalt des RAM 50 nicht das Niveau 177, so daß der RAM 50 diese
Zellen speichern kann, bis das Switch-Netz weitere Zellen von der
Schnittstelle annehmen kann.
-
Das
Bitformat des Durchflußregelungstokens
ist in 15 gezeigt. Das erste Bit 180 ist
mit Ti bezeichnet, wird nur als Selektorbit verwendet und wird nachstehend
beschrieben. Die nächsten
achtzehn Bits 181 werden verwendet, um Portverstopfung
für einen
der Ports 1–18
anzuzeigen, basierend auf den Gesamtwarteschlangenlängen für die Priorität F6 für diesen
Port oder der Summe der Warteschlangenlängen für die Priorität F7 an
diesem Port. Das Selektorbit 180 wird verwendet, um anzuzeigen, ob
der Bitsatz 181 die Priorität F6 oder die Priorität F7 betrifft.
Wenn Ti auf den Wert 0 gesetzt ist, dann bezieht sich die durch
die Bits 1–18
angezeigte Regelung pro Port auf die Gesamtwarteschlangenlängen der
Priorität
6. Wenn Ti auf den Wert 1 gesetzt ist, dann zeigen die Bits 1–18 eine
Anhäufung
an den jeweiligen Ports für
Warteschlangenlängen
der Priorität 7
an.
-
Das
in 15 gezeigte nächste
Bit 182 wird verwendet, um eine Anhäufung in den Pufferpartitionen
für zum
Multicasten vorgesehene ABR-Zellen der Priorität 6 oder 7 anzuzeigen. Wiederum
bestimmt der durch das Selektorbit 180 festgesetzte Wert,
ob das Bit 182 sich auf eine Anhäufung für die Priorität F6 oder
F7 bezieht. Die Zähler 90,
auf die in 10 Bezug genommen wird, beinhalten
einen Zähler
für zum
Multicasten vorgesehene ABR-Signale der Priorität F6 und F7, die im Puffer
gehalten werden, obwohl in 14 keine
separate Partition dargestellt ist. Ein Schwellenwert für diese
Zählungen bezüglich des
Multicastens wird ebenfalls im Schwellenwertspeicher 91 festgesetzt.
Es ist zu erkennen, daß alle
für die
Anhäufung
und Durchflußregelung verwendeten
Zähler
so eingerichtet sind, daß sie
die Zählung
um 1 erhöhen,
wenn der Puffer eine neue Zelle der jeweiligen Art eingibt und sie
einer bestimmten Warteschlange zuordnet. Der Zähler wird verringert, wenn
eine Zelle dieser Art vom Switch ausgegeben wird.
-
Das
in 15 gezeigte nächste
Bit 183 zeigt an, ob für
die Anzahl an ABR-Zellen der Priorität 6 und 7, die in den Partitionen 162 oder 164 des
in 14 gezeigten Puffers gehalten werden, eine Anhäufung vorliegt.
Das letzte Bit 184 wird verwendet, um anzuzeigen, ob für ABR-Zellen
der Priorität
0–5, die
in den Partitionen 161 und 163 des in 14 gezeigten
Puffers gehalten werden, eine Anhäufung vorliegt. Im Fall jedes
der Bits 182, 183 und 184 muß zwischen
Zellen, die sich in Aufwärtsrichtung
oder Abwärtsrichtung
bewegen, unterschieden werden. Im Fall der zum Multicasten vorgesehenen
ABR-Signale der Priorität
6 oder 7 erfolgen separate Zählungen
für passende
Zellen sowohl in Aufwärts-
als auch in Abwärtsrichtung.
Die an den Bitpositionen 182, 183 und 184 gehaltenen
Werte betreffen Zellen in Aufwärts-
oder Abwärtsrichtung,
in Abhängigkeit
vom im Register 94 von 10 gehal tenen
Wert, der identifiziert, ob die Anhäufung Zellen in Aufwärts- oder
Abwärtsrichtung
betrifft.
-
ANHÄUFUNGSSTEUERUNG FÜR CBR
-
Im
Fall von CBR-Verkehr hat jede im Puffer 35 oder an einem
der Ports 30 festgestellte Anhäufung eine Steuerung bezüglich der
Anhäufung
zur Folge, die durch Informationen im Header 60 jedes Pakets
bestimmt wird. Dies wird mit Bezug auf 17 erläutert, die
den relevanten Teil des Headers zeigt. In dieser Figur zeigen die
Bits 12 und 13 einen CGT-Wert an, und die Funktionsweise
desselben wird mit Bezug auf 18 erläutert. Der
CGT-Wert zeigt einen Abweichungswert gegenüber den für den Puffer 35 oder
die Ports 30 festgesetzten Schwellenwerten an. Wie in 18 dargestellt,
kann der CGT-Wert 0, 1, 2 oder 3 sein. Wenn CGT = 0, dann beträgt der Abweichungswert
pro Port 4 und pro Switch-Puffer 8. Für CGT = 1 betragen die Abweichungswerte
8 pro Port und 16 pro Switch-Puffer. Für CGT = 2 betragen die Abweichungswerte
16 pro Port oder 32 pro Switch-Puffer. Für CGT = 3 betragen die Abweichungswerte
32 pro Port oder 64 pro Switch-Puffer. Dies zeigt an, daß, wenn
die Zählung der
CGT-Zellen pro Port, entweder für
die Zählung pro
Port oder für
die in der Pufferpartition festgesetzte Zählung, den festgesetzten Abweichungswert
gegenüber
dem Schwellenwert erreicht, eine Form von Maßnahme bezüglich der Anhäufung erforderlich
ist. Die Art der dann ergriffenen Maßnahme hängt von dem durch das in 17 gezeigte
CGA-Bit festgesetzten Wert ab. Wenn CGA den Wert 0 aufweist, dann
sollte die Zelle gelöscht
werden. Weitere Zellen können
von benachbarten Switches oder Schnittstellen ankommen, und jede
Zelle wird bei ihrer Eingabe in der gleichen Weise getestet, um
zu sehen, ob sie in den Switch-Puffer akzeptiert oder gelöscht werden sollte.
Wenn jedoch CGA = 1 und der CGT-Wert
anzeigt, daß die
Abweichung gegenüber
dem Schwellenwert jetzt erreicht worden ist, dann wird die Zelle zur
Weiterübertragung
in den Switch-Puffer akzeptiert, aber der CGI-Indikator an der Bitposition 15 in 17 wird
auf den Wert 1 gesetzt. Dieses Bit bleibt dann während der übrigen Übertragung des Pakets durch
das Switch-Gewebe unverändert,
um anzuzeigen, daß der
Pfad dieser Art von Zelle nahezu verstopft ist.
-
SWITCH-LAYOUT
-
Ein
detaillierteres Blockdiagramm des Switch-Layouts ist in 19 gezeigt. Ähnliche
Teile haben ähnliche
Bezugszeichen wie in den früheren Figuren.
In diesem Fall ist jeder der Ports 30 gespalten worden,
um die Eingangsoperationen auf der linken Seite der Figur und die
Ausgangsoperationen aus den gleichen Ports auf der rechten Seite
der Figur zu zeigen. Dies umfaßt
eine Mehrzahl von Eingangspuffern 190, die jeweils eine
Kapazität
zum Halten eines gesamten Frames aufweisen. Die Managementschaltungsanordnung 40 steuert
die Decodierung jedes in einem Eingangspuffer gehaltenen Frames,
so daß Daten
aus dem Frame-Header entlang der Leitung 191 der Eingangssteuerschaltungsanordnung 192 zugeführt werden,
um die Schreibadresse im Zellpufferpool 35 zu bestimmen.
Diese Schreibadresse wird aus der Warteschlange freier Adressen 140 bestimmt.
Das zu schreibende Datum wird dem Pool auf der Leitung 193 vom
Datenabschnitt 61 jedes Frames zugeführt. Die Eingangssteuerschaltungsanordnung 192 weist
im Fall, daß die
Zellen implizite Adressierung verwenden, eine Zweiwegeverbindung
zur Routing-Tabelle 42 auf. Ausgangspuffer 195,
die jeweils eine Kapazität
zum Halten eines vollen Frames aufweisen, werden, gesteuert durch
die Ausgangssteuerschaltungsanordnung 196, mit Daten geladen.
Die Ausgangssteuerschaltungsanordnung 196 reagiert auf
die Managementwarteschlange 139, um Leseadressen an den Puffer 35 zu
liefern, und die auf der Leitung 197 gelesenen Daten werden
in den passenden Ausgangspuffer 195 geladen. Die Ausgangssteuerung 196 empfängt auf
der Leitung 199 auch alle Durchflußregelungstoken, die aus den
durch die Eingangspuffer 190 empfangenen Eingangsdaten
extrahiert wurden. Als Reaktion auf die auf der Leitung 199 empfangenen
Durchflußregelungstoken
kann die Ausgangssteuerschaltungsanordnung 196 die weitere
Ausgabe ausgewählter
Zellarten von den Ausgangspuffern 195 verhindern. Sowohl
die Eingangssteuerschaltungsanordnung 192 als auch die
Ausgangssteuerschaltungsanordnung 196 sind mit den Zählern 90 und 92 verbunden,
und wenn Durchflußregelungstoken
erzeugt werden müssen,
können
diese von der Ausgangssteuerschaltungsanordnung 196 auf
der Leitung 200 ausgegeben werden, um in die Trailer von
Frames eingeschlossen zu werden, die von den Ausgangspuffern 195 ausgegeben
werden. Die Managementschaltungsanordnung 40 beinhaltet
einen Port 201 zur Verbindung mit der Steuer-CPU 25 und einen
Testport 202.
-
Das
obige Beispiel, das die Vermeidung einer Blockade beschreibt, bezieht
sich auf eine lineare Kette mit zwei entgegengesetzten Richtungen,
die mit aufwärts
und abwärts
bezeichnet sind. Die Erfindung ist jedoch auch für andere Netze der in 20 gezeigten
Art anwendbar, bei denen eine Mehrzahl von Switches, die jeweils
den in 2 oder 19 beschriebenen ähnlich sind,
in einer nicht linearen Konfiguration verbunden sind. Im in 20 gezeigten
Beispiel sind drei Switches 210, 211 und 212 zwischen
drei ähnlichen
Schnittstellen, die jeweils mit 14 bezeichnet sind, geschaltet.
Obwohl jeder der Switches eine Mehrzahl von Ports aufweist, sind
der Einfachheit halber an jedem Switch nur vier gezeigt. Beispielsweise
sind am Switch 210 die Ports mit S11, S12, S13 und S14
bezeichnet. Jeder ist ein Zweirichtungsport insofern, als er durch
den Port Eingangssignale annehmen oder Ausgangssignale abgeben kann.
Um eine Blockierung zu vermeiden, muß jeder Switch Register, ähnlich dem
Register 94 in 10, beinhalten,
um jeden Eingangsport mit einer jeweiligen Art oder Richtung zu
kennzeichnen. In Abhängigkeit
von der Komplexität
des Netzes muß eine
Mehrzahl (beispielsweise 2, 3 oder mehr) von Arten oder Richtungen
spezifiziert werden, und jede Art oder Richtung bildet einen Teil
einer geordneten Abfolge. Dies wird durch die Steuer-CPU 25 in 1 bestimmt
und in das entsprechende Register 94 jedes Switches programmiert.
Nachdem die geordnete Abfolge für
jede bestimmte Art oder Richtung von Eingangsport spezifiziert worden
ist, kann jeder Switch nur Zellen gemäß der Abfolgereihenfolge ausgeben. Jede
Zelle wird bei ihrer Eingabe durch einen Port als eine Zelle der
Art gekennzeichnet, die der Kennzeichnung des Eingangsports entspricht,
durch den die Zelle eingegeben wurde. Der Puffer ist mit separaten
Kategorien partitioniert, die jeder Art oder Richtung entsprechen,
die für
einen Port bestimmt ist, so daß der
Puffer von 14 modifiziert wird, um separate
Kategorien für
jede Richtung oder Art von bestimmtem Eingangsport bereitzustellen.
Jeder Switch kann dann eine Zelle einer bestimmten Art nur an einen
Eingangsport eines benachbarten Switches ausgeben, der nicht der
geordneten Abfolge von Arten widerspricht. Man betrachte beispielsweise
den Ausgangsport S13 des Switches 210 in 20 bei
der Ausgabe einer Zelle an den Eingangsport S21 des Switches 211.
Der Ausgangsport S13 ermittelt die Art oder Richtung, die für die auszugebende
Zelle bestimmt ist. Er kann dies nur an einen bestimmten Eingangsport
S21 des Switches 211 tun, wenn der Eingangsport S21 eine
Art oder Kennzeichnung an der gleichen Position in der geordneten
Abfolge aufweist oder in der geordneten Abfolge weiter fortgeschritten ist.
Die Ausgabe einer Zelle mit einer spezifischen Art oder bestimmten
Richtung kann an einen empfangenden Eingang erfolgen, der einen
Teil der geordneten Abfolge bildet, entweder an der gleichen Position in
der Abfolge wie die Kennzeichnung der Zelle an sich oder an einen
Eingangsport mit einer entlang der Abfolge weiter fortgeschrittenen
Kennzeichnung, aber nie zurückgehend
in Bezug auf die Kennzeichnung der Ausgangszelle in der Abfolge.
Jeder der in 20 gezeigten Switches ist so
eingerichtet, daß die
Verbindung zwischen dem Ausgangsport und dem Eingangsport jedes
Switches auf Ausgangszellen einer bestimmten Art oder Richtung nur
an Eingänge
einer bestimmten Art oder Richtung beschränkt ist, welche den obigen
Bedingungen genügen.
-
Die
Erfindung ist nicht auf die Details des vorstehenden Beispiels beschränkt. Beispielweise kann
jede Kombination von Switches in einem Netz zwischen passenden Eingangs-
und Ausgangsschnittstellen geschaltet werden. Die Header-Information
zur Bestimmung des Routings durch das Switch-Netz kann modifiziert
werden, um notwendige Informationen für eine andere Anzahl von Switches im
Netz bereitzustellen. Um eine Verbindung mit höherer Bandbreite zwischen verbundenen
Switches im Netz herzustellen, können
aufeinanderfolgende Links verbunden werden, wie in 20 gezeigt,
um eine Busverbindung mit hoher Brandbreite zwischen ausgewählten Links
an zwei benachbarten Switches bereitzustellen. Eine solche gruppierte
Verbindung ist bei 202 zwischen zwei Switches 21 und 22 in 21 dargestellt.