-
Die
vorliegende Erfindung betrifft eine Vermittlungseinrichtung für Datenpakete,
welche mehrere Eingangsports und Ausgangsports hat und für den Transport
eingehender Pakete zu einem oder mehreren Ausgangsports und von
dort an eine nachfolgende Vorrichtung bestimmt ist. Im Besonderen
betrifft die Erfindung eine Vermittlungseinrichtung und ein Vermittlungsverfahren,
bei denen für
jeden Eingangsport oder jede Untergruppe von Eingangsports ein getrennter
Ausgangspuffer existiert. Als Datenpakete können insbesondere ATM-Zellen
oder auch Ethernet-Frames
akzeptiert werden.
-
TECHNISCHES
GEBIET UND HINTERGRUND DER ERFINDUNG
-
Die
schnelle Vermittlung von Informationen, seien es analoge Signale
oder alphanumerische Daten, ist eine wichtige Aufgabe in einem Kommunikationsnetz.
Die Netzknoten, in denen die Leitungen oder Übertragungsverbindungen aus
verschiedenen Richtungen zum Informationsaustausch untereinander
verbunden sind, sind oft der Grund für Verzögerungen bei der Übertragung.
Wenn sich viel Datenverkehr auf einen Knoten konzentriert und wenn
insbesondere der meiste Datenverkehr nur über einige wenige der Verbindungen
abläuft,
treten oft größere Verzögerungen
oder sogar Datenverluste auf. Es ist daher wünschenswert, Vermittlungsknoten
zur Verfügung
zu haben, die ein schnelles Routing ermöglichen.
-
In
EP 312628 ist eine Vermittlungseinrichtung
für die
Verbindung einer Vielzahl ein- und ausgehender Übertragungsverbindungen eines
Kommunikationsnetzes oder für
den Datenaustausch zwischen Ein- und Ausgangsverbindungsabschnitten von
Computern und Workstations dargelegt. Außerdem sind bekannte Datenpaketformate
beschrieben.
-
Auf
der Internetseite www.zurich.ibm.com/Technology/ATM/SWOCPWP wird
ein Überblick über die
Vermittlungstechnologie nach dem Stand der Technik mit einer Einführung in
die Technologie des PRIZMA-Chips gegeben. Informationen zu diesem
Thema finden sich auch in der Veröffentlichung „A flexible
shared-buffer switch for ATM at Gbit/s rates von W. E. Denzel, A.
P. J. Engbersen, I. Iliadis, Computer Networks and ISDN Systems, (0169-7552/94),
Elsevier Science B. V., Bd. 27, Nr. 4, 5.611-624.
-
Der
PRIZMA-Chip umfasst einen gemeinsam genutzten Ausgangspuffer mit
16 Eingangs- und 16 Ausgangsports und einer Portgeschwindigkeit
von 300-400 Mbit/s. Das Prinzip der Vermittlungseinrichtung besteht
darin, die eingehenden Pakete zunächst durch einen voll parallelen
E/A-Routingbaum zu routen und dann die gerouteten Pakete in eine
Warteschlange im Ausgangspuffer zu stellen. Außerdem verwendet der Chip eine
Trennung zwischen Datenfluss (Nutzinformationen) und Steuersignalfluss (Header).
Nur die Nutzinformationen werden in einem dynamisch aufgeteilten
Ausgangspufferspeicher abgelegt. Durch diese Architektur wird eine HOL-Warteschlangenblockierung
(Head-of-line Blocking) vermieden. Der PRIZMA-Chip weist eine skalierbare
Architektur auf und bietet somit zahlreiche Erweiterungsmöglichkeiten,
durch welche die Portgeschwindigkeit, die Anzahl der Ports sowie
der Datendurchsatz erhöht
werden können.
Diese Erweiterungen können
durch eine modulare Verwendung des PRIZMA-Chips realisiert werden.
Es können auch ein-
oder mehrstufige Vermittlungskonfigurationen in modularer Form aufgebaut
werden.
-
Der
PRIZMA-Chip ist besonders für
die Breitband-Telekommunikation
auf ATM-Basis (Asynchronous Transfer Mode) geeignet. Jedoch ist
das Konzept nicht auf ATM-orientierte Umgebungsarchitekturen beschränkt. ATM
basiert auf Datenpaketen mit fester, kurzer Länge, oft als Zellen bezeichnet,
und wird vermutlich in Zukunft als integrierter Vermittlungs- und Übertragungsstandard
im öffentlichen Broadband
Integrated Services Digital Network (BISDN) eingesetzt. Die Topologie
und Anordnung der Warteschlangen im PRIZMA-Chip zur Konfliktlösung nutzen
in hohem Maß die
Parallelität.
Die Routingfunktion wird in verteilter Form auf der Hardwareebene
durchgeführt,
was als Self-Routing bezeichnet wird. ATM-Pakete werden in mehrere
Pakettypen klassifiziert, insbesondere Pakettypen mit unterschiedlichem
Umfang an Nutzinformationen, und der PRIZMA-Chip ist zur Verarbeitung von Paketen mit
bis zu 64 Bytes Nutzinformationen vorgesehen. Es werden jedoch oft
auch Nutzinformationen mit 12, 16, 32 oder 48 Bytes in den Paketen
transportiert.
-
Die
Bandbreite im gemeinsam genutzten Speicher einer Vermittlungseinrichtung
mit Ausgangswarteschlangen und N Ports muss das N-fache der Geschwindigkeit
an den einzelnen Ports betragen, was erhebliche Implementierungsprobleme
bei hohen Übertragungsgeschwindigkeiten
aufwirft. Deshalb haben in den letzten Jahren Vermittlungseinrichtungen
mit Eingangswarteschlangen an Popularität gewonnen. Die Leistungseinschränkungen
von mit FIFO-Warteschlangen ausgestatteten Vermittlungseinrichtungen
sind durch den Einsatz von Techniken wie Virtual Output Queuing
(VOQ) in Kombination mit einer zentralisierten Ablaufsteuerung zur
Erzielung eines hohen Durchsatzes weitgehend überwunden. VOQ führt auf
der Grundlage des Zielausgangs der Pakete zu einer Sortierung der
eingehenden Pakete auf der Eingangsseite.
-
Paketvermittlungseinrichtungen,
die allein auf einem Warteschlangensystem am Ausgang beruhen, lassen
sich wegen des hohen Bandbreitenbedarfs im Speicher schlecht an
hohe Übertragungsgeschwindigkeiten
anpassen. Implementierungen mit einem hohen Grad an Parallelität können die
gewünschte
Bandbreite erreichen, begrenzen jedoch die Größe des Speichers, der auf einem
einzelnen Chip untergebracht werden kann, und führen somit potenziell zu hohen
Datenpaketverlustraten und einer sehr vom Datenverkehrsaufkommen
abhängigen Leistung.
-
In
EP 0838 972 A2 wird
eine Vermittlungseinrichtung mit asynchronem Übertragungsmodus (ATM) beschrieben.
Das ATM-Vermittlungssystem umfasst
einen Kern-Vermittlungsbereich CS in einer Ausgangspuffer-Konfiguration,
die eine ATM-Vermittlungsfunktion zwischen Hochgeschwindigkeits-Eingangsports und
-Ausgangsports aufweist, einen Bereich mit einem Eingangspuffermodul
IXB, das mehrere langsame Eingangsleitungen auf den Hochgeschwindigkeits-Eingangsport
des Vermittlungsbereiches multiplext, sowie einen Bereich mit einem
Ausgangspuffermodul OXB, das den Ausgang eines Hochgeschwindigkeits-Ausgangsports
des CS in mehrere langsame Ausgangsleitungen trennt. Das IXB ermöglicht Warteschlangen
für jede
Ausgangsleitung und jede Serviceklasse. Das OXB ermöglicht Warteschlangen
für die
im OXB vorhandene Ausgangsleitung und Serviceklasse. Überschreitet
die Pufferbelegung einen Schwellenwert, erzeugt das OXB ein Zellen-Unterdrückungssignal
für den
CS. Überschreitet
die Länge
der Warteschlange für
jeden Ausgangsport einen Schwellenwert, erzeugt der CS ein Zellen-Unterdrückungssignal
für alle
IXBs. Aufgrund des Zellen-Unterdrückungssignals
stoppt der IXB eine Zellenübertragung.
Die reibungslose Abarbeitung wird dadurch gesteigert, dass das Auftreten von Überlastungen
innerhalb des ATM-Datenaustausches unterdrückt wird. Durch die Verwendung
derselben Ausgangsleitung wird ein gleichmäßiger Durchsatz auf den virtuellen
Kanälen
gewährleistet.
-
VORTEILE DER
ERFINDUNG
-
Gemäß den Ansprüchen besteht
ein Vorteil der Erfindung in der Bereitstellung einer Vermittlungseinrichtung
bzw. eines Vermittlungsverfahrens, die bei im Wesentlichen gleich
guter Leistung weniger Verbindungen als bekannte Einrichtungen erfordern.
Da das Schema der virtuellen Ausgangsspeicherung (Virtual Output
Queuing, VOQ) zur Reduzierung der Head-of-line-Blockierung dient, hat ein von mehreren
Eingangsports gemeinsam genutzter Speicher nicht mehr die Auswirkungen,
die er ohne VOQ hätte.
Tatsächlich
weist der Ausgangspuffer selbst bei stoßweise auftretendem Datenverkehr
oder in Situationen, die zu einem Rückstau führen, mit VOQ einen viel höheren Füllgrad auf.
Der Vorteil der gemeinsamen Nutzung wird daher vernachlässigbar.
Die Vervielfachung der Vermittlungs-Infrastruktur, d. h. des Ausgangspuffers
und seiner Umgebung, führt auf
den ersten Blick zu erhöhtem
Platzbedarf der Hardware, reduziert am Ende jedoch die notwendige Verdrahtung
deutlich. In einer Ausführungsart,
bei welcher der Ausgangspuffer für
jeden Eingangsport eine Anzahl von N Adressen bietet, wobei N die
Anzahl der Eingangs- bzw.
Ausgangsports ist, reduziert sich die Verdrahtung um den Faktor
N2. Stellt man sich vor, dass jede Verbindung
normalerweise aus einer 16-Bit-Busverbindung besteht, und setzt
man N = 32, ergeben sich daraus bei einem völlig gemeinsam genutzten Ausgangspuffer
32 * 16 * 1024 = 524.288 Verbindungen und eine Reduzierung um den
Faktor 1024, d. h. auf 512, mit der durch die Erfindung vorgeschlagenen
Einrichtung. Da die Größe des Ausgangspuffers
für jede
Untergruppe von Eingangsports entsprechend des Umfangs der Untergruppe festgelegt
werden kann, können
die Ausgangspuffer für
die Untergruppen kleiner gewählt
werden als der Ausgangspuffer, der für die gemeinsame Nutzung durch
alle Eingangsport verwendet wurde. Dies bedeutet bei einer Gesamtgröße des Ausgangspuffers von
N * N Adressen, dass pro Eingangsport ein Adressraum von N Adressen
reserviert ist, der auch in der durch die vorliegende Erfindung
beschriebenen Einrichtung für
jeden Ausgangspuffer verwendet werden kann. In einer Ausführungsart,
in der für
jeden einzelnen Eingangsport ein eigener Ausgangspuffer vorgesehen
ist, bedeutet dies, dass jeder derartige Ausgangspuffer N Adressen
bieten würde.
-
Darüber hinaus
würde durch
Vervielfachung der Vermittlungs-Infrastruktur
der Adressmanager nur einen N-mal kleineren Adressraum verarbeiten müssen und
daher nur die Hälfte
der Bits eines gewöhnlichen
Adressmanagers verwenden. Die Ausgangswarteschlangen könnten ebenfalls
kleiner, d. h. mit weniger Platzbedarf, ausgeführt werden. Die Vervielfachung
würde somit
letztendlich nicht zu einer tatsächlichen
Vervielfachung in Bezug auf den Platzbedarf führen. Der oben erwähnte Vorteil
der reduzierten Verdrahtungskomplexität wird somit nicht durch einen
erhöhten
Platzbedarf aufgrund der Verdopplung der Funktionsgruppen zunichte
gemacht.
-
Die
Frage ist, wie groß die
Untergruppen zu wählen
sind. Eine Untergruppe kann aus einem einzigen Eingangsport bestehen,
woraus sich ein Ausgangspuffer pro Eingangsport ergibt. Eine andere Möglichkeit
könnte
darin bestehen, zwei Eingangsports zu einer Untergruppe zusammenzufassen,
die sich dann ihren Ausgangspuffer teilen. Es können auch – je nach Zweckmäßigkeit – verschieden
große Untergruppen
gebildet werden, wie z. B. eine Untergruppe mit einem Eingangsport,
eine weitere mit zwei Ports, eine weitere mit vier Ports. Es scheint
am vorteilhaftesten zu sein, wenn alle Untergruppen dieselbe Größe aufweisen,
weil das endgültige
Layout dann einheitlich und weniger kompliziert ist. Die optimale
Lösung
scheint in einem Ausgangspuffer pro Eingangsport zu bestehen.
-
Die
Verwendung eines gemeinsamen Schwellwertkomparators ist zur Vereinheitlichung des
Füllgrades
aller Ausgangswarteschlangen, die zu ein und demselben Ausgangsport
gehören,
von Vorteil, weil hierdurch der tatsächliche Verkehr zu diesem einen
Ausgangsport gemessen und dazu verwendet wird, eine Rückmeldeinformation
zu den Eingangswarteschlangen zu erzeugen, was zu einer effektiven
Steuerung des Verkehrs in einer Konkurrenzsituation führt.
-
Die
Verteilung der Rückmeldungen
vom Schwellwertkomparator auf die Eingangswarteschlangen in einer
selektiven Weise, d. h. nur auf diejenigen Eingangswarteschlangen,
welche Datenpakete für
den entsprechenden Ausgangsport enthalten, an dem die Überlastung
auftrat, hat den Vorteil, dass kein unnötiger Blockiereffekt durch
den Rückstau
hervorgerufen wird. Hierdurch wird die Head-of-line-Blockierung
selbst bei einer Konkurrenzsituation vermieden.
-
Die
Erzeugung eines Rückstaus
im Ausgangspuffer ist insofern zweckmäßig, als auf diese Weise der
Verlust von Datenpaketen aufgrund eines vollen Ausgangspuffers vermieden
wird.
-
Die
Verarbeitung von Multicast-Datenpaketen könnte gelöst werden, indem die Nutzinformationen
nur einmal im Ausgangspuffer gespeichert werden und dessen Adresse
in die Ausgangswarteschlange jedes Ausgangsports eingetragen wird,
an den das Datenpaket gerichtet ist. Es kann ein Zähler verwendet
werden, der immer dann rückwärts gezählt wird,
wenn die Adresse aus der Ausgangswarteschlange ausgelesen wird,
und der, wenn er den Wert null erreicht, die Adresse zur weiteren
Verwendung freigibt.
-
Verschiedene
Eingangswarteschlangen zur Verarbeitung unterschiedlicher Prioritäten ermöglichen
es, Datenpakete mit höherer
Priorität
an solchen mit niedrigerer Priorität vorbeizuleiten.
-
Weisen
die Ausgangswarteschlangen mehr Warteschlangenplätze auf als der Ausgangspuffer Adressen
enthält,
kann eine ungleiche Verteilung zwischen den verschiedenen Eingangswarteschlangen
ohne Verlust von Datenpaketen bewältigt werden. Eine ungleiche
Gesamtverteilung könnte
vollständig
gepuffert werden, wenn jede Ausgangswarteschlange über so viele
Warteschlangenplätze
verfügt
wie Adressen im entsprechenden Ausgangspuffer enthalten sind.
-
Eine
Möglichkeit
zur Behandlung von Multicast-Datenpaketen besteht darin, Kopien
jedes zugeordneten Ausgangsports in der entsprechenden Eingangswarteschlange
abzulegen und diese Kopien gleichzeitig zu multiplexen, wenn der
Status des Ausgangsports dies zulässt.
-
Im
Puffer 11 ist auch ein System realisierbar, welches nur
die Header in der Warteschlange einreiht und die Nutzinformationen
in einem separaten Speicherbereich ablegt, der auch als gemeinsamer Eingangspuffer
bezeichnet wird. In einem solchen Fall müssen die Nutzinformationen
eines Multicast-Datenpaketes nur einmal gespeichert werden, wodurch
Speicherplatz eingespart wird.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Die
Erfindung beschreibt eine Vermittlungseinrichtung für den Transport
von Datenpaketen und ein Vermittlungsverfahren gemäß den entsprechenden
Ansprüchen
1 und 13.
-
BESCHREIBUNG
DER ZEICHNUNGEN
-
Beispiele
der Erfindung sind in den Zeichnungen abgebildet und nachfolgend
exemplarisch detailliert beschrieben.
-
1 stellt
eine Vermittlungseinrichtung mit einem Eingangspuffer und einem
separaten Ausgangspuffer pro Eingangspuffer sowie einer Gruppe von
Ausgangswarteschlangen pro Eingangspuffer dar.
-
2 stellt
eine Vermittlungseinrichtung mit einem Eingangspuffer und einem
separaten Ausgangspuffer pro Eingangspuffer sowie nur einer Gruppe
von Ausgangswarteschlangen dar.
-
Aus
Gründen
der Übersichtlichkeit
sind in den Figuren weder reale Abmessungen dargestellt noch die
Relationen zwischen den Abmessungen in einem realistischen Maßstab wiedergegeben.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Im
Folgenden werden verschiedene exemplarische Ausführungsarten der Erfindung beschrieben.
-
In 1 ist
eine Vermittlungseinrichtung mit Eingangspuffer zur Verarbeitung
von Datenpaketen dargestellt. Die Einrichtung umfasst eine Vermittlungseinrichtung 10 mit
einer Anzahl N Eingangsports 20 und einer Anzahl N Ausgangsports 30.
An jedem der mit „IP" bezeichneten Eingangsports 20 ist ein
mit „IB" bezeichneter Eingangspuffer 11 angeordnet.
Jeder Eingangspuffer 11 umfasst einen Eingangscontroller 25,
mit „Ctrl" bezeichnet, der
seinerseits mit der Vermittlungseinrichtung 10 verbunden ist.
Der Zweck besteht darin, die über
die Kommunikationsleitungen 50 am Eingangspuffer 11 eingehenden
Datenpakete, die bei einem oder mehreren der Ausgangsports 30 eintreffen
sollen, zu diesen Ausgangsports 30 zu leiten. Von den Ausgangsports 30 können die
Datenpakete an die nachfolgenden Vorrichtungen, seien es weitere
Vermittlungs- oder Empfangsvorrichtungen usw., übergeben werden.
-
Die
Datenpakete sind in einen Headerbereich und einen Nutzinformationsbereich
des Datenpaketes aufgeteilt. Im Paketheaderbereich sind die Zielinformationen
des Datenpakets enthalten, aus denen hervorgeht, an welchen der
Ausgangsports 30 das betreffende Datenpaket zu übergeben
ist. Hinsichtlich der Zielinformationen in einem Datenpaket gibt
es zwei Arten von Datenpaketen: Unicast-Datenpakete und Multicast-Datenpakete.
Bei einem Unicast-Datenpaket handelt es sich um ein Datenpaket mit
lediglich einem der Ausgangsports 30 als Ziel. Im Gegensatz
dazu hat ein Multicast-Datenpaket mehr als einen der Ausgangsports 30 zum
Ziel. Ein Multicast-Datenpaket ist somit per Definition ein Datenpaket,
dessen Nutzinformationen an mehrere Ausgangsports 30 gehen
sollen. Im Nutzinformationsbereich eines Datenpaketes können alle
Daten enthalten sein, die an das Ziel zu übergeben sind.
-
Die
Eingangspuffer 11 sind jeweils aufgeteilt in eine Vielzahl
von Eingangspufferwarteschlangen, d. h. jeder Eingangspuffer 11 weist
exakt eine Eingangswarteschlange 12 für jeden Ausgangsport 30 auf.
Somit umfasst jeder Eingangspuffer 11 hier N Eingangswarteschlangen 12.
Jede dieser Eingangswarteschlangen 12 in einem Eingangspuffer 11 dient der
Speicherung der eintreffenden Datenpakete für einen zugeordneten Ausgangsport 30 in
diesem Eingangspuffer 11. Folglich werden die eintreffenden Datenpakete
in jedem Eingangspuffer 11 entsprechend ihres Ziel-Ausgangsports 30 sortiert.
Wenn ein an einen bestimmten Ausgangsport 30 gerichtetes Unicast-Datenpaket
wegen einer Belegung dieses Ausgangsports 30 blockiert
ist, werden durch diese von dem Unicast-Datenpaket verursachte Head-of-line-Blockierung nur diejenigen
Datenpakete blockiert, die an denselben Ausgangsport 30 gerichtet
sind; die an andere Ausgangsports 30 gerichteten Datenpakete
können
hingegen unabhängig
davon verarbeitet und zur Vermittlungseinrichtung 10 weitergeleitet
werden, wenn der Pfad zu ihrem Ziel-Ausgangsport 30 nicht
belegt ist. Diese Sortierung nach Ziel wird auch als Virtual Output
Queuing, kurz VOQ, bezeichnet. Die Vielzahl der Eingangswarteschlangen 12 zusammen
wird ebenfalls als VOQ bezeichnet.
-
Zur
Verteilung der auf der entsprechenden Kommunikationsleitung 50 eintreffenden
Datenpakete auf die richtigen Eingangswarteschlangen 12 umfasst
der Eingangspuffer 11 einen Demultiplexer 19, der
auch als Eingangswarteschlangen-Router IQR bezeichnet wird. Für die Auswahl
der Datenpakete aus den Eingangswarteschlangen 12 und deren Übergabe über den
entsprechenden Eingangsport 20 an die Vermittlungseinrichtung 10 umfasst
der Eingangspuffer 11 einen Multiplexer 21, der
auch als Warteschlangen-Selektor QS bezeichnet wird. Der Multiplexer 21 wählt zu einem
bestimmten Zeitpunkt eine der Eingangswarteschlangen 12 aus,
nimmt ein Datenpaket aus dieser Eingangswarteschlange 12 auf
und sendet es über
seinen Eingangsport 20 an die Vermittlungseinrichtung 10.
Der Auswahlprozess wird durch den Eingangscontroller 25 gesteuert,
der seine Informationen hierfür
von der Vermittlungseinrichtung 10 erhält. Zu einem bestimmten Zeitpunkt
signalisiert der Eingangscontroller 25 dem Multiplexer 21,
ob er ein Datenpaket an die Vermittlungseinrichtung 10 senden
kann, und falls ja, von welcher Eingangswarteschlange 12 dieses
Datenpaket zu seinem Ausgangsport 30 gesendet werden kann.
Die Reihenfolge, in welcher die in den Warteschlangen befindlichen
Datenpakete aus den verschiedenen Eingangswarteschlangen 12 abgerufen
werden, wird vor allem von der Zugriffsmöglichkeit auf die Ausgangsports 30 bestimmt,
d. h. von ihrem Belegungszustand. Befindet sich ein Ausgangsport 30 im
Leerlauf, ist er zum Empfang eines Datenpaketes bereit und dies
wird dem Eingangscontroller 25 signalisiert. Der Eingangscontroller 25 stellt
den Arbiter dar für die
Auswahl, welches Datenpaket zu welchem Zeitpunkt vom Eingangspuffer 12 an
die Vermittlungseinrichtung 10 zu senden ist.
-
In
einer anderen Anordnung mit einem gemeinsamen Ausgangspuffer würde unter
den verschiedenen Eingangscontrollern 25 ein Schema anzuwenden
sein, welches zwischen ihnen das Recht aufteilt, die in den Warteschlangen
vorhandenen Datenpakete an die Vermittlungseinrichtung 10 zu
senden. In der hier beschriebenen Anordnung besitzt jedoch jeder
Eingangspuffer 11 seinen eigenen Eingangsrouter 13,
der unabhängig
von den anderen Eingangsroutern 13 arbeitet, und seinen
eigenen Ausgangspuffer 35, der unabhängig von den anderen Ausgangspuffern 35 ist.
Aufgrund der Aufteilung des Ausgangspuffers 35 und des
Eingangsrouters 13 kann folglich jeder Eingangspuffer 11 unabhängig von
den anderen Eingangspuffern 11 seine Datenpakete an den
Ausgangspuffer 35 weiterleiten. Die einzige Abhängigkeit
zwischen den verschiedenen Eingangspuffern 11 betrifft
den nachfolgend erläuterten Rückstaumechanismus.
-
Multicast-Datenpakete
können
am Demultiplexer 19 verteilt werden, indem in jeder Eingangswarteschlange 12,
deren entsprechender Ausgangsport 30 im Zielheader des
Datenpakets vermerkt ist, ein Eintrag vorgenommen wird. Hier wird
das Multicast-Datenpaket einfach kopiert und in jeder derartigen
Warteschlange 12 eingereiht. Das bedeutet, dass jedes Multicast-Datenpaket, das an
eine Anzahl von n verschiedenen Ausgangsports 30 gerichtet
ist, kopiert und so in der Warteschlange eingereiht wird, dass n
Kopien davon in dem Eingangspuffer 11 vorhanden sind, in
dem das Datenpaket ankam. Auf Seiten des Multiplexers 21 kann
das Prinzip, zu einem bestimmten Zeitpunkt nur ein Datenpaket abzurufen, dahingehend
geändert
werden, dass es bei Multicast-Datenpaketen zulässig ist, mehrere Kopien des Pakets
auf einmal an die Vermittlungseinrichtung 10 zu senden.
Mit anderen Worten, der durch das im Demultiplexer 19 stattfindende
Kopieren und Verteilen eines Multicast-Datenpaketes entstandene
Nachteil wird durch den Vorteil des Zusammenfassens mehrerer Pakete
mit gleichen Nutzinformationen zu einem Weiterleitungsprozess im
Multiplexer 21 ausgeglichen. Alternativ kann ein Multicast-Datenpaket
in lediglich einer der Eingangswarteschlangen 12 oder in
einer separaten Multicast-Warteschlange
und nur einmal im Ausgangspuffer 35 gespeichert sowie zerstörungsfrei
von dort ausgelesen werden, um an alle seine Ziel-Ausgangsports 30 übertragen
zu werden.
-
Die
Vermittlungseinrichtung 10 umfasst hier einen gemeinsamen
Ausgangsrouter 14 und einen separaten Vermittlungsbereich 15 für jeden
Eingangsport 20 mit seinem Eingangspuffer 11.
Jeder derartige Vermittlungsbereich 15 umfasst einen Ausgangspuffer 35,
einen Eingangsrouter 13, Ausgangswarteschlangen 18,
einen Ausgangswarteschlangen-Router 17 und einen Adressmanager 16.
-
Jeder
der Eingangspuffer 11 weist folglich seinen mit „IR" bezeichneten eigenen
Eingangsrouter 13 auf, der über den zugehörigen Eingangsport 20 mit
dem Eingangspuffer 11 verbunden ist. Auf der Ausgangsseite
des Eingangsrouters 13 ist der mit „OB" bezeichnete Ausgangspuffer 35 angeordnet, der
alle vom Eingangsrouter 13 kommenden Datenpakete aufnimmt.
Die Ausgangsseite des Ausgangspuffers 35 führt zu dem
mit „OR" bezeichneten gemeinsamen
Ausgangsrouter 14. Die Router 13, 14 bieten
hier für
jeden Eingangsport 20 die Möglichkeit, ohne Blockierung
jeden Ausgangsport 30 zu erreichen. Folglich kann jeder
Eingangsport 20 zu jedem Zeitpunkt an jeden der Ausgangsports 30 ein
Datenpaket senden, falls ein derartiges Datenpaket eintrifft.
-
Parallel
zum Eingangsrouter 13 und Ausgangspuffer 35 sind
der Ausgangswarteschlangen-Router 17 und die Ausgangswarteschlangen 18 angeordnet.
Der Eingangsport 20 führt
somit über den
Ausgangswarteschlangen-Router 17 zu den Ausgangswarteschlangen 18 und
von dort zum Ausgangsrouter 14. Ein mit „AM" bezeichneter Adressmanager 16 ist
zwischen dem Ausgangsrouter 14 und dem Eingangsrouter 13 sowie
zwischen dem Ausgangsrouter 14 und dem Ausgangswarteschlangen-Router 17 angeordnet.
Für jeden
Ausgangsport 30 ist eine mit „Q" bezeichnete Ausgangswarteschlange 18 angeordnet,
welche das Eingangssignal für
den Ausgangsrouter 14 liefert und das Eingangssignal vom
Ausgangswarteschlangen-Router 17 erhält.
-
Alle
Datenpakete von einem Eingangsport 20 werden über seinen
Eingangsrouter 13 zu seinem Ausgangspuffer 35 geroutet.
Der Adressmanager 16 versorgt den Eingangsrouter 13 mit
der Information, an welcher Stelle im Ausgangspuffer 35,
d. h. an welcher Adresse darin, die eintreffenden Datenpakete gespeichert
werden sollen. Die Information, an welcher Adresse im Ausgangspuffer 35 jedes
an einen bestimmten Ausgangsport 30 gerichtete Datenpaket gespeichert
wird, wird über
den Ausgangswarteschlangen-Router 17 in die Ausgangswarteschlange 18 geschrieben.
Diese Information wird als Ordnungsinformation bezeichnet. Für jedes
im Ausgangspuffer 35 gespeicherte Datenpaket wird eine derartige
Ordnungsinformation an einer Stelle in der Ausgangswarteschlange 18 abgelegt,
die zu demjenigen Ausgangsport 30 gehört, an den dieses Datenpaket
gesendet werden soll. Diese Adressen sind dadurch anhand der zugehörigen Ausgangsports 30 sortiert,
d. h. jener Ausgangsports 30, an welche die an den jeweiligen
Adressen gespeicherten Datenpakete gerichtet sind. Die Sortierinformationen,
in welcher der Ausgangswarteschlangen 18 die betreffende
Adresse abzulegen ist, kann aus dem Eingangspuffer 11 abgeleitet
werden, weil dort dasselbe Prinzip für die Warteschlangenbildung
auf das gesamte Datenpaket angewendet wird. Die Einstellung des Warteschlangen-Selektors 21 kann
daher für
den Ausgangswarteschlangen-Router 17 verwendet werden.
-
Jeder
Ausgangsport 30 kann daher die gespeicherten Adressen der
Datenpakete abrufen, die von der entsprechenden Ausgangswarteschlange 18 am
Ausgangsport 30 eintreffen sollen. Der Adressmanager 16 verarbeitet
hier zu jedem Zeitpunkt gleichzeitig für jede Ausgangswarteschlange 18 eine Adresse.
Dies bedeutet auch, dass für
jeden Eingangsport 20 immer eine Adresse verfügbar gehalten wird,
und dies kann bereits geschehen, bevor die betreffenden Datenpakete
eintreffen. Jedes am Eingangsport 20 als vorderstes Paket
der Warteschlage (Head-of-the-Line)
eintreffende Datenpaket findet somit eine Adresse vor, wohin es
durch den Eingangsrouter 13 zu übertragen ist.
-
Diese
Adresse wird durch den Adressmanager 16 auch dem Ausgangswarteschlangen-Router 17 zur
Verfügung
gestellt, der als weitere Eingangsinformation Teile der Zielinformation
des Datenpaketes als Maske dafür
erhält,
in welche Ausgangswarteschlange 18 die Reihenfolgeinformationen
für alle eintreffenden
Datenpakete einzutragen sind. Der Fall einer Nichtverfügbarkeit
von Adressen wird später
erörtert.
-
Für jedes
eintreffende Datenpaket wird somit durch den Adressmanager 16 eine
Adresse vergeben, an welcher dieses Datenpaket dann im Ausgangspuffer 35 gespeichert
wird, wobei die Adresse an einer Stelle in der Ausgangswarteschlange 18 gespeichert
wird, welche dem Ausgangsport 30 entspricht, an den das
Datenpaket gerichtet ist. Die Informationen hierfür, d. h.
die Zielinformationen des Datenpaketes, können aus dem Paketheader abgeleitet
werden. Der Ausgangsrouter 14 dient der endgültigen Verteilung
in der Weise, dass er für
jeden Ausgangsport 30 die nächste Adresse aus der zugehörigen Ausgangswarteschlange 18 ausliest,
das Datenpaket von dieser Adresse abruft und es dann an den Ausgangsport 30 weitergibt,
der das Ziel dieses Datenpaketes ist.
-
Der
Schritt des Abrufens kann ein zerstörungsfreier Leseprozess sein,
der eine Verarbeitung von Multicast-Datenpaketen in der Weise ermöglicht, dass
sie nur einmal im Ausgangspuffer 35 gespeichert, aber mehrmals
gelesen werden, bis jeder Ausgangsport 30, der das Datenpaket
erhalten muss, dieses auch erhalten hat. Nach dem Auslesen des Datenpaketes
aus dem Ausgangspuffer 35 wird die betreffende Adresse
in der Weise freigegeben, dass diese Adresse an den Adressmanager 16 zurückgegeben
wird, der diese Adresse dem Eingangsport 20 für die Verarbeitung
des nächsten
eintreffenden Datenpaketes erneut zuweisen kann. Bei Multicast-Datenpaketen
kann ein Zähler
(in der Zeichnung nicht dargestellt) verwendet werden, der nach
dem Speichern des Datenpaketes auf die Zahl von Ausgangsports 30 gesetzt
wird, an die dieses Datenpaket zu senden ist, und der jedes Mal
verringert wird, wenn das Datenpaket durch den Ausgangsrouter 14 abgerufen
wird. Erreicht der Zähler
den Wert null für
dieses Datenpaket, kann die zugehörige Adresse zur Wiederverwendung
freigegeben werden.
-
Zur
Verarbeitung von Multicast-Datenpaketen kann für jede Speicherstelle ein Belegungszähler geführt werden.
Diese Zähler
werden mit dem Wert null initialisiert. Beim Eintreffen eines Datenpaketes stellt
der Adressmanager eine freie Adresse bereit, falls eine solche verfügbar ist,
und das Datenpaket wird an dieser Stelle gespeichert; andernfalls
wird das ganze Datenpaket verworfen. Der zugehörige Belegungszähler wird
auf die Anzahl von Zielen gesetzt, die vom Header des Datenpaketes
gefordert ist. Die Adresse wird an jede VOQ angehängt, an
die das Datenpaket gerichtet ist.
-
Wenn
der Ausgangsrouter 30 eine Adresse ausgewählt hat,
wird das zugehörige
Datenpaket aus dem Speicher übertragen.
Die Adresse selbst wird an den Adressmanager zurückgegeben, zusammen mit einem
vom Ausgangsrouter 30 festgelegten Zählerstand, der die Anzahl von
Zielen angibt, an die das Datenpaket im aktuellen Zyklus gerade übertragen wird.
Der Adressmanager 16 reduziert den Belegungszähler um
diese Zahl. Erreicht der Zähler
den Wert null und zeigt damit an, dass das Datenpaket an alle seine
Ziele übertragen
wurde, wird die Adresse in den Pool freier Adressen zurückgegeben.
-
Im
Falle von mehreren Vermittlungsbereichen 15, d. h. mehreren
Gruppen von Ausgangswarteschlangen 18, könnte eine
in der Zeichnung nicht dargestellte Ausgangswarteschlangen-Arbitrierungseinheit
hinzugefügt
werden, die bei einem einzelnen Ausgangsport 30 entscheidet,
welche seiner zugeordneten Ausgangswarteschlangen 18 zu
einem bestimmten Zeitpunkt ihren Eintrag an diesen bestimmten Ausgangsport 30 senden
darf. Eine derartige Ausgangswarteschlangen-Arbitrierungseinheit
kann auch so ausgelegt werden, dass sie für mehrere oder auch alle Ausgangsports 30 die
Auswahl trifft.
-
Das
Prinzip der gemeinsamen Nutzung des Ausgangspuffers 35 ist
insofern eingeführt,
als alle Ausgangswarteschlangen 18 zusammen mehr logische
Speicherstellen aufweisen als der Ausgangspuffer 35 physikalische
Adressen besitzt. Durch diese Maßnahme kann eine Asymmetrie
in der Verteilung von Datenpaketen unter den Eingangswarteschlangen 12 gepuffert
werden. Solange der gesamte Verkehr von Datenpaketen die reale maximale
Kapazität
des Ausgangspuffers 35 nicht überschreitet, nimmt die Leistungsfähigkeit
zu, da die Anordnung in Bezug auf extreme Wechsel des Verkehrsmusters viel
flexibler ist. Insbesondere stoßweiser
Datenverkehr kann besser bewältigt
werden, da die Wahrscheinlichkeit des Verlustes von Datenpaketen
dadurch reduziert ist, dass eine Eingangswarteschlange 12 mehr
Platz im Ausgangspuffer nutzen kann als sie durch die gleichberechtigte
gemeinsame Nutzung erhalten würde.
-
Jeder
Eingangsport 20 besitzt seinen eigenen Eingangspuffer 11 mit
virtueller Ausgangsspeicherung, d. h. mit den Eingangswarteschlangen 12 für jede Ausgangswarteschlange 18 in
jedem Eingangspuffer 11. Die Eingangspuffer 11 sind
jeweils mit ihrem eigenen Eingangsrouter 13 verbunden.
Jeder Eingangspuffer 11 besitzt ebenfalls seinen eigenen
Eingangscontroller 25, der zur Steuerung der Reihenfolge
ausgehender Datenpakete von den verschiedenen Eingangswarteschlangen 12 dieses
Eingangspuffers 11 dient. Jeder Eingangscontroller 25 arbeitet
unabhängig
von den anderen Eingangscontrollern 25.
-
Die
Unabhängigkeit
der Eingangscontroller 25 voneinander reduziert die Komplexität aller
Steuerungsressourcen erheblich. Jeder Eingangscontroller 25 muss
hier lediglich die eintreffenden Datenpakete gemäß einer vordefinierten Entscheidungsrichtlinie
verarbeiten, bei der es sich um einen zyklischen Betrieb (Round
Robin), einen zyklischen Betrieb mit Gleichbehandlung und Vorrang-Verarbeitung
nach Prioritätsebenen
oder irgendeine andere Strategie wie OCF, FIFO, LRU oder Ähnliches
handeln kann. Jeder der Eingangscontroller 25 entscheidet
individuell, welches der von ihm gespeicherten Datenpakete er als
nächstes
an den Eingangsrouter 13 sendet.
-
Ein
Rückmeldungsmechanismus
ist angeordnet, der den Eingangspuffern 11 ein Signal sendet,
wenn alle Ausgangswarteschlangen 18 eines bestimmten Ausgangsports 30 voll
sind, d. h. ein bestimmter Schwellenwert für den Füllgrad aller Ausgangswarteschlangen 18 dieses
Ausgangsports 30 überschritten
worden ist. Daher ist hinter den Ausgangswarteschlangen ein mit „OQCT" bezeichneter Schwellwertkomparator 22 angeordnet,
der alle Füllgrade
der zu einem einzelnen Ausgangsport 30 gehörenden Ausgangswarteschlangen 18 erfasst.
Der kumulierte Füllgrad
ist das korrekte Maß für die Anzahl
aller Datenpakete in der Vermittlungseinrichtung, die an einen bestimmten
Ausgangsport 30 gerichtet sind. Diese kumulierte Anzahl
muss folglich mit einem oder mehreren vorgegebenen Schwellenwerten
verglichen werden, was in der Schwellenwert-Erfassungseinrichtung 22 für die Ausgangswarteschlangen
erfolgt. Bei Überschreitung
des Schwellenwertes wird das oben erwähnte Signal generiert und an
den Eingangscontroller 25 gesendet.
-
Auf
dieses Signal hin kann jeder Eingangscontroller 25 in der
Weise reagieren, dass alle an diesen Ausgangsport 30 gerichteten
Datenpakete nicht mehr aus den Eingangspuffern 11 gesendet
werden, d. h., die Datenpakete aus den Eingangswarteschlangen 12,
die an die belegte Ausgangswarteschlange 18 gerichtet sind,
werden zurückgehalten, während die
anderen Eingangswarteschlangen 12 weiterhin Datenpakete
senden können.
-
Das
Rückstauschema
kann auch durch sein umgekehrtes Äquivalent ersetzt werden, d.
h. es kann signalisiert werden, ob eine Ausgangswarteschlange 18 noch
weitere Einträge
aufnehmen kann.
-
Eine
weitere Verbesserung kann erreicht werden, indem an die Eingangscontroller 25 ein
Signal zurückgeschickt
wird, das den Eingangscontrollern 25 detailliertere Informationen über den
Füllgrad aller
Ausgangswarteschlangen 18 liefert. Da das Ziel darin besteht,
dass zu jedem Zeitpunkt an jedem Ausgangsport 30 ein Datenpaket
an eine nachfolgende Stufe übergeben
wird, kann die Information, dass die Gesamtheit der zu einem gemeinsamen
Ausgangsport 30 gehörenden
Ausgangswarteschlangen 18, im Weiteren als Gruppe von Ausgangswarteschlangen 18 bezeichnet,
leer oder fast leer ist, an die Eingangscontroller 25 geschickt
und dazu verwendet werden, dass vorzugsweise jene Datenpakete an
die Eingangsrouter 13 gesendet werden, die an den betreffenden
Ausgangsport 30 gerichtet sind. Die Statusinformation der
Ausgangswarteschlangen 18 kann z. B. abgeleitet werden,
indem man einen oder mehrere zusätzliche
Schwellenwerte einführt,
z. B. einen Schwellenwert bei einem Füllgrad von null oder nahe null.
Eine leere oder fast leere Gruppe von Ausgangswarteschlangen 18 wird
somit dem Eingangscontroller 25 gemeldet, der seine Richtlinie
dann in der Weise anpassen sollte, dass eine Ausgangswarteschlange 18 dieser
Gruppe so schnell wie möglich ein
Datenpaket erhält.
Die Einführung
mehrerer derartiger Schwellenwerte ermöglicht eine fein abgestufte
Statusmeldung an die Eingangscontroller 25, die diese Statusmeldung
für jede
der Gruppen der Ausgangswarteschlangen 18 dazu verwenden
können, die
Richtlinie der Gruppe für
das Multiplexen der Datenpakete entsprechend zu beeinflussen. Die
Statusmeldung fungiert somit als eine Art Gegensatz zum Rückstau und
somit als Niedriglast-Alarmsignal oder als Rückkopplungssignal zur Planung
der Lastmaximierung.
-
Das
Rückstausignal
kann hier selektiv an die Eingangspuffer 11 verbreitet
werden, d. h., das aus den Ausgangswarteschlangen 18 eines
bestimmten Ausgangsports 30 stammende Rückstausignal wird nur zu der
entsprechenden Eingangswarteschlange 12 in den Eingangspuffern 11,
bzw. Eingangswarteschlangen 12 bei mehreren Prioritäten, geleitet.
Somit werden alle anderen Eingangswarteschlangen 12 durch
diesen Rückstau
nicht blockiert und können weiterhin
ihre Datenpakete an die Ausgangspuffer 35 senden.
-
Da
aufgrund der geringeren Anzahl von Verbindungsleitungen zwischen
den Eingangspuffern 11 und der Vermittlungseinrichtung 10 die
Eingangspuffer 11 physikalisch leichter von der Vermittlungseinrichtung 10 getrennt
werden können,
lassen sich die Eingangspuffer 11 mit preiswerteren Speicherchips realisieren,
und somit kann die Größe ihrer
Puffer in der Praxis viel größer gewählt werden
als sie zum selben Preis bei den Ausgangspuffern 35 sein
könnte.
Somit stellen die endlichen Eingangspuffer 11 in diesem
Schema eine bessere Annäherung
an die theoretisch endlichen Eingangspuffer 11 dar.
-
Um
eine korrekte Verarbeitung der Datenpakete zu erreichen, wird der
Ausgangspuffer 35 auch um einen Mechanismus zur Steuerung
des Datenpaketflusses ergänzt,
der von einem (nicht dargestellten) Ausgangspuffer-Rückstaugenerator
durchgeführt
wird, welcher ein vom Ausgangspuffer 35 ausgehendes Signal
erzeugt, das an dessen Eingangspuffer 11 gerichtet ist,
wobei das Signal dem Eingangspuffer 11 anzeigt, dass der
Ausgangspuffer 35 keine weiteren eintreffenden Datenpakete
puffern kann und somit ein weiteres Senden von Datenpaketen des
Eingangspuffers 11 an den Ausgangspuffer 35 so
lange verhindert wird, bis der von dem Signal ausgelöste Rückstau nicht
mehr vorhanden ist. Das Rückstausignal
wird erzeugt, wenn die Anzahl der im Ausgangspuffer 35 gepufferten
Datenpakete einen vordefinierten Schwellenwert überschreitet. Dieser Schwellenwert
wird auf einen Wert unterhalb der tatsächlichen Größe des Ausgangspuffers 35 eingestellt,
um noch jene Datenpakete puffern zu können, die möglicherweise in dem Zeitraum
gesendet werden, den das Rückstausignal
benötigt,
um im Eingangspuffer 11 den Rückstau zu bewirken. Weil bei gemeinsamer
Nutzung die Summe der Anzahl von Warteschlangenplätzen aller
Ausgangswarteschlangen 18 in einem Vermittlungsabschnitt 15 größer ist als
die Anzahl von Adressen im Ausgangspuffer 35, kann der
Ausgangspuffer 35 voll gefüllt werden, obwohl keine Ausgangswarteschlange 18 ihren Schwellenwert
für die
darin gespeicherten Datenpakete erreicht. Somit weist der Ausgangspuffer 35 auch
einen Schwellenwert für belegte
Adressen auf, der, wenn er erreicht ist, die Erzeugung eines Speicher-ist-voll-Rückstausignals
an den Eingangspuffer 11 bewirkt; in diesem Fall muss der
Eingangspuffer 11 das Senden seiner Datenpakete über den
Eingangsrouter 13 an den Ausgangspuffer 35 beenden. Sobald
die Anzahl belegter Adressen unter den Schwellenwert sinkt, kann
der normale Betrieb wieder aufgenommen werden. Der Mechanismus erzeugt
immer dann einen Rückstau,
wenn der Platz, der jedem einzelnen Ausgangspuffer 35 separat
zur Verfügung
gestellt wird, in diesem Ausgangspuffer 35 nicht mehr ausreicht.
-
Diese
Anordnung ermöglicht
es allen Eingangspuffern 11, ihre Datenpakete unabhängig voneinander über ihren
Eingangsrouter 13 immer dann zu senden, wenn in der Ausgangswarteschlange 18 für dieses
Datenpaket und im gemeinsamen Ausgangpuffer 35 noch ausreichend
Platz dafür
vorhanden ist, d. h. kein Rückstausignal
generiert wurde.
-
Die
Eingangspuffer 11 mit virtueller Ausgangsspeicherung können in
der vorliegenden Erfindung auch unter Verwendung eines (nicht dargestellten)
zusätzlichen
gemeinsamen Eingangspuffers, mit oder ohne gemeinsame Nutzung, realisiert
werden. Das bedeutet, dass die eintreffenden Datenpakete in dem
gemeinsamen Eingangspuffer gespeichert werden können, während ihre darin enthaltenen
Adressen in den Eingangswarteschlangen 12 gespeichert werden,
sortiert nach den Ausgangsports 30, an welche diese Datenpakete
gerichtet sind. Die Adressen stellen somit die Einträge für die Datenpakete
dar, die in die Eingangswarteschlangen 12 eingetragen werden.
Bei Multicast-Datenpaketen
muss nur ein Eintrag im gemeinsamen Eingangspuffer vorgenommen werden,
wobei ein Eintrag in jeder Eingangswarteschlange 12 vorgenommen
wird, die zu einem Ausgangsport 30 gehört, an den das Datenpaket gerichtet
ist. Dieser Eintrag in den Eingangswarteschlangen 12 ist
ein Zeiger auf die Stelle, an der das Multicast-Datenpaket oder
dessen Nutzinformation im gemeinsamen Eingangspuffer gespeichert
ist. Diese Einträge
sind somit bei Multicast-Datenpaketen identisch und da die Nutzinformation
nur einmal gespeichert werden muss, wird Speicherplatz eingespart. Zur
Implementierung der gemeinsamen Pufferung der Nutzinformationen
können
dieselben, hier nicht dargestellten, Elemente wie für den Ausgangspuffer 35 verwendet
werden, d. h. ein Adressmanager und ein Eingangsrouter zur Übergabe
der Nutzinformationen an den gemeinsamen Eingangspuffer. Der Demultiplexer 19 spielt
eine ähnliche
Rolle für
die Eingangswarteschlangen 12 wie der Ausgangswarteschlangen-Router 17 für die Ausgangswarteschlangen 18.
-
Die
Eingangspuffer 11 sind normalerweise in Form von Vermittlungsadaptern
angeordnet, die auch als Eingangsadapter oder einfach als Adapter bezeichnet
werden. In der vorgeschlagenen Erfindung erfordert die Skalierung
der Einrichtung, auch als Vermittlungsstruktur bezeichnet, von z.
B. 16 × 16,
d. h. 16 Eingangsports 20 × 16
Ausgangsports 30, auf 32 × 32 lediglich die Änderung
der Warteschlangenstruktur aller Adapter, jedoch nicht die Änderung
der Eingangspuffer 11 auf den Adaptern. Bei entsprechender
Berücksichtigung
dieses Sachverhalts bedeutet dies, dass die tatsächliche Anzahl von verketteten
Listen zur Verwaltung dieses Eingangspuffers 11 als Ansammlung
von Eingangswarteschlangen 12 programmierbar sein sollte.
In jedem Fall verändert
sich die Komplexität
auf dem Eingangsadapter in der Größenordnung von N, d. h. eine Verdopplung
der Ziele bedeutet eine Verdopplung der Anzahl von Eingangswarteschlangen 12 und Ausgangswarteschlangen 18.
Bei einer klassischen VOQ-Anordnung erfordert die Verdopplung der
Anzahl von Eingangsports 20 und Ausgangsports 30 der
Vermittlungseinrichtung eine quadratische Zunahme der Anfragen, d.
h. 16 × 16
Steuerungsmittel erhalten 256 Anforderungen und 32 × 32 Steuerungsmittel
erhalten 1024 Anforderungen.
-
Eine
weitere Ausführungsart
der Erfindung ist in 2 dargestellt. Sie unterscheidet
sich von der oben beschriebenen Ausführungsart darin, dass der Adressmanager 16,
der Ausgangswarteschlangen-Router 17 und die Ausgangswarteschlangen 18 von
den Eingangsports 20 gemeinsam genutzt werden. Dies bedeutet,
dass, obwohl jeder der Eingangsports 20 seinen eigenen
Eingangsrouter 13 und Ausgangspuffer 35 aufweist,
es nur eine Gruppe von Ausgangswarteschlangen 18 gibt,
die über
einen gemeinsamen Ausgangswarteschlangen-Router gefüllt werden,
welcher seine Eingangsinformationen von dem einen Adressmanager 16 und
von jedem der Eingangspuffer 11 erhält. Die Ausgangswarteschlangen 18 übergeben
ihre Füllgradsignale
an die Eingangscontroller 25, wo im Falle einer Konkurrenzsituation
der Ausgangswarteschlangen ein Rückstausignal
generiert wird. Ein Rückstausignal
kann wiederum durch den oben beschriebenen Zuteilungsmechanismus
ersetzt werden. Der OQCT 22 ist hier nicht mehr erforderlich,
da das Aufaddieren der verschiedenen Füllgrade nicht nötig ist.
Der Adressmanager 16 übergibt
seine Adressen nacheinander an alle Eingangsrouter 13.
Selbstverständlich
verwaltet dieser Adressmanager 16 die Adressen aller Ausgangspuffer 15 und
erhält
somit vom Ausgangsrouter 14 die Rückmeldung, welche Adressen
wieder verwendet werden können.
Der Ausgangsrouter liefert in diesem Fall nicht nur Informationen über eine
Adresse an den Adressmanager 16, sondern auch die Identität des zugehörigen Ausgangsrouters 35.
Alternativ kann der Adressraum aller Ausgangspuffer 35 zusammen
so eingestellt werden, dass keine Adresse zweimal erscheint. Dann
ist keine Verwaltung mehrerer sich überlappender Adressräume notwendig.
Der Adressmanager kann sofort die nächste zu verwendende Adresse
an alle Eingangsrouter 13 senden, wobei jeder Eingangsrouter 13 erkennt,
ob es sich bei der eintreffenden Adresse um eine Adresse handelt,
die von ihm verwendet werden kann, oder ob diese Adresse von einem
anderen Eingangsrouter 13 verwendet werden soll. Diese
Ausführungsart kann
auch in der Weise abgeändert
werden, dass jede Anordnung zwischen der gerade beschriebenen Ausführungsart
mit nur einer Gruppe von Ausgangswarteschlangen 18 und
der zuerst beschriebenen Ausführungsart
mit einer solchen Gruppe von Ausgangswarteschlangen 18 für jeden
der Eingangsports 20 verwendet werden kann. Somit können zwei oder
mehrere Eingangsports 20 einen Adressmanager 16,
einen Ausgangswarteschlangen-Router 17 und die Ausgangswarteschlangen 18 gemeinsam nutzen.
-
Die
Leistungsfähigkeit
der Vermittlungseinrichtung kann auf verschiedene Weise erhöht werden.
Zur Erhöhung
der Anzahl von Ein- und Ausgangsports kann die Vermittlungseinrichtung
in ein- oder mehrstufiger
Anordnung ausgeführt
werden. Bei einer mehrstufigen Einrichtung steigt die Anzahl benötigter Vermittlungsanordnungen
langsamer als in einer vergleichbaren einstufigen Einrichtung, d.
h. mit steigender Anzahl von Ports benötigt eine mehrstufige Einrichtung
weniger Vermittlungseinrichtungen als eine einstufige Einrichtung.
-
Jedoch
ist die Leistungsfähigkeit
einer mehrstufigen Anordnung wegen der erhöhten Latenzzeit und der Möglichkeit
des Rückstaus
aufgrund einer durch eine Verbindung voll ausgelasteten Ausgangswarteschlange
geringer, was die Verarbeitung von Datenpaketen mit anderen Zielen
oder die restlose Verwendung des Paketspeichers verhindert, wodurch
alle Eingangsports der Vermittlungseinrichtung blockiert werden
und diese Blockierung sich auf die vorangehende Stufe ausbreitet.
Diese geringere Leistungsfähigkeit
kann bis zu einem gewissen Grad durch einen Beschleunigungsfaktor
kompensiert werden. Das bedeutet, dass die Vermittlungseinrichtung
mit höherer
Geschwindigkeit läuft
als ihre Umgebung. Dann wird hinter der Vermittlungseinrichtung ein
Ausgangspuffer zur Einreihung der schneller eintreffenden Datenpakete
benötigt,
die von der letzten Stufe ausgesendet werden und der nachfolgenden Hardwareumgebung
mit langsamerer Geschwindigkeit übergeben
werden müssen.
Eine andere Möglichkeit
besteht in der Vergrößerung des
internen Speichers der Vermittlungseinrichtung, sodass die Wahrscheinlichkeit
einer totalen Auslastung geringer ist. Ein derartiger größerer Speicher
ist jedoch extrem kostspielig und in gewissem Umfang auch physikalisch
begrenzt. Durch die Vergrößerung des
Speichers der Vermittlungseinrichtung mittels einer Speichererweiterung
wird das Erreichen der physikalischen Grenze vermieden, die Vergrößerung ist
jedoch trotzdem kostspielig. Wenn in einer mehrstufigen Einrichtung
eine nachfolgende Vermittlungseinrichtung belegt ist (Ausgangsspeicher
voll, d. h. keine verfügbare
Adresse vorhanden oder die Ausgangswarteschlange voll), kann für alle Eingangsports
ein Rückstausignal
generiert werden, welches wiederum an alle vorangehenden Vermittlungseinrichtungen übertragen
wird. Im Falle von vollen Ausgangswarteschlangen kann das Rückstausignal
selektiv nur Datenpakete blockieren, die an die volle Ausgangswarteschlange
gerichtet sind. Im Falle eines vollen Ausgangspuffers müssen alle
Eingangspuffer blockiert werden. Das Rückstausignal blockiert die
vorangehende Vermittlungseinrichtung in der Weise, dass diese Vermittlungseinrichtung
keine weiteren Zellen senden kann.
-
Die
in der vorliegenden Erfindung vorgestellte Vermittlungseinrichtung
ist mit Hilfe eines der bekannten Erweiterungsverfahren skalierbar,
z. B. mit dem aus der PRIZMA-Architektur
bekannten Verfahren, das in der Beschreibung des Standes der Technik
oben erwähnt
ist. Somit sind die Erhöhung
der Geschwindigkeit, die Erhöhung
der Anzahl an Ports, die Parallelisierung der Verbindungen und schließlich Kombinationen dieser
Verfahren anwendbar. Die beschriebenen Ausführungsarten sind teilweise
oder vollständig
kombinierbar, um eine geeignete Vermittlungseinrichtung zu erhalten,
in der Vermittlungsgeschwindigkeit, geringe Latenzzeit, hoher Durchsatz und
geringe Komplexität
von Verdrahtung und Schaltungen vereint sind.
-
In
den Ansprüchen
wird zwischen dem Fall, bei dem mehrere Ausgangspuffer gemeinsam
eine Gruppe von Ausgangswarteschlangen 18, einen Ausgangswarteschlangen-Router 17 und
einen Adressmanager 16 nutzen, und dem Fall, bei dem jeder
Ausgangspuffer 35 seine eigene Gruppe von Ausgangswarteschlangen 18 sowie
einen eigenen Ausgangswarteschlangen-Router 17 und Adressmanager 16 aufweist,
unterschieden, indem beide Formen angegeben werden, d. h. Einzahl
und Mehrzahl der Ausgangspuffer 35.