-
Die
Erfindung betrifft eine Vermittlungsanordnung mit mehreren Eingabeports
und mehreren Ausgabeports für
Datenpakete, die zum Transportieren von ankommenden Datenpaketen
zu einem oder mehreren bestimmten Ausgabeports und von dort zu einer
nachfolgenden Einheit bestimmt ist. Insbesondere betrifft die Erfindung
eine Vermittlungsanordnung und ein Vermittlungsverfahren, bei welchen
für jeden
Eingabeport eine Gruppe von Ausgabepuffern vorgesehen ist, wobei
jede Gruppe für
jeden Ausgabeport einen Ausgabepuffer umfasst. Als Datenpakete können insbesondere
ATM-Zellen oder auch Ethernet-Rahmen in Frage kommen.
-
TECHNISCHES
GEBIET UND HINTERGRUND DER ERFINDUNG
-
Die
schnelle Vermittlung von Daten in Form von analogen Signalen oder
alphanumerischen Daten stellt in einem Datenübertragungsnetz eine wichtige
Aufgabe dar. Die Netzwerkknoten, an denen aus verschiedenen Richtungen
kommende Leitungen oder Übertragungsverbindungen
miteinander verbunden werden, um untereinander Daten auszutauschen,
stellen oft die Ursache für
Verzögerungen
bei der Datenübertragung
dar. wenn auf einen Knoten viel Datenverkehr entfällt und
wenn der größte Teil des
Datenverkehrs zudem nur durch wenige der Leitungen befördert wird,
kommt es oft zu größeren Verzögerungen
oder sogar zum Datenverlust. Deshalb ist es wünschenswert, über Vermittlungsknoten
zu verfügen,
die eine schnelle Weiterleitung ermöglichen.
-
In
EP 312628 wird eine Vermittlungsvorrichtung
zum Verknüpfen
einer Vielzahl von ankommenden und abgehenden Übertragungsleitungen eines Datenübertragungsnetzes
oder zum Austauschen von Daten zwischen ankommenden und abgehenden
Verbindungsleitungen von Computern und Arbeitsplatzrechnern beschrieben.
Außerdem
werden bekannte Paketformate beschrieben.
-
Eine Übersicht über die
Vermittlungstechnologie nach dem Stand der Technik befindet sich
im Internet auf der Seite www.zurich.ibm.com/Technology/ATM/SWOCPWP,
die eine anschauliche Einführung
in den PRIZMA-Chip gibt. Eine andere Informationsquelle zu diesem
Thema stellt die 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, S. 611 bis 624, dar.
-
Der
PRIZMA-Chip umfasst einen gemeinsamen Ausgabepuffer mit 16 Eingabeports
und 16 Ausgabeports, die eine Portgeschwindigkeit von 300 bis 400
Mbit/s bieten. Der Vermittlung liegt das Prinzip zugrunde, ankommende
Datenpakete zuerst durch einen völlig
parallelen E/A-Routingbaum zu leiten und dann die durchgeleiteten
Pakete im Ausgabepuffer in eine Warteschlange zu stellen. Darüber hinaus verfolgt
der Chip eine Trennung zwischen dem Datenfluss (Nutzdaten) und den
Steuerdaten (Header). Im gemeinsamen dynamischen Ausgabepufferspeicher
werden nur die Nutzdaten gespeichert. Durch diese Architektur werden
HOL-Warteschlangen (head-of-the-line
queuing) verhindert. Der PRIZMA-Chip weist eine skalierbare Architektur
auf und bietet dadurch vielfältige
Erweiterungsmöglichkeiten, durch
welche die Portgeschwindigkeit, die Anzahl der Ports und der Datendurchsatz
erhöht
werden kann. Diese Erweiterungen können aufgrund des modularen
Aufbaus des PRIZMA-Chips realisiert werden. Auch einstufige oder
mehrstufige Vermittlungsnetze können
modular aufgebaut werden.
-
Der
PRIZMA-Chip eignet sich besonders für Breitbandübertragungen im asynchronen Übertragungsmodus
ATM. Das Konzept ist jedoch nicht auf ATM-Architekturen beschränkt. Der
ATM basiert auf kurzen Datenpaketen mit fester Länge, die auch als Zellen bezeichnet
werden, und soll einmal als integrierter Vermittlungs- und Übertragungsstandard
für das
künftige öffentliche
BISDN (Broadband Integrated Services Digital Network, digitales
Breitbandnetz für
integrierte Services) dienen. Die Topologie und die Warteschlangenanordnung
zur Konfliktlösung von
PRIZMA weist einen hohen Parallelitätsgrad auf. Die Routing-Funktion
wird auf Hardware-Ebene auf verteilte Weise ausgeführt und
als Selbstrouting bezeichnet. Bei ATM-Paketen werden mehrere Pakettypen unterschieden,
insbesondere Pakettypen mit unterschiedlicher Nutzdatenmenge, wobei
der PRIZMA-Chip Pakete mit bis zu 64 Bytes Nutzdaten verarbeiten
kann. Oft müssen
jedoch auch Pakete mit 12, 16, 32 oder 48 Bytes Nutzdaten transportiert
werden.
-
Die
Bandbreite durch den gemeinsamen Speicher einer Vermittlung mit
Ausgabewarteschlangen muss gleich dem N-fachen der einzelnen Portgeschwindigkeit
sein, was bei hohen Leitungsgeschwindigkeiten hohe Anforderungen
an die Implementierung stellt. Aus diesem Grund kam es in den letzten
Jahren verbreitet zur Einführung
von Vermittlungen mit Eingabewarteschlangen. Die Leistungseinschränkungen
von Crossbar-Vermittlungen mit FIFO-Warteschlangen sind im Wesentlichen
durch den Einsatz von Verfahren, wie die virtuelle Ausgabewarteschlange
(Virtual Output Queuing, VOQ), in Verbindung mit einer zentralisierten
Ablaufsteuerung überwunden
worden, um einen hohen Datendurchsatz zu erreichen. Beim VOQ-Verfahren werden
die an der Eingangsseite ankommenden Pakete entsprechend dem Zielausgang
des jeweiligen Paketes sortiert.
-
Paketvermittlungen,
die ausschließlich
auf Ausgabewarteschlangen basieren, können wegen der hohen Bandbreitenanforderungen
des Speichers nicht einfach auf hohe Datenraten skaliert werden. Ausführungsformen
mit einem hohen Parallelitätsgrad
können
die gewünschte
Bandbreite zwar erreichen, begrenzen jedoch das auf einem Einzelchip
integrierbare Speichervolumen, was möglicherweise zu hohen Paketverlustraten
und einer stark vom Datenverkehr abhängigen Leistung führt.
-
VORTEILE DER
ERFINDUNG
-
Ein
Vorteil der Erfindung gemäß den Ansprüchen besteht
darin, dass die Vermittlungsanordnung bei vergleichbarer Leistung
weniger aufwändig
als andere Vermittlungsanordnungen ist, da die Routing-Funktion
durch eine Vervielfachung des Ausgabepuffervolumens ersetzt wird,
das wesentlich billiger ist als der für einen Ausgabe-Router benötigte Speicherplatz.
Ausgabe-Router benötigen
einen außerordentlich
hohen Verdrahtungsaufwand, der beim Speicher nicht erforderlich
ist. Außerdem
wird die Logikschaltung für
die Verarbeitung der Datenpakete weniger komplex, wodurch das Schaltungsdesign
vereinfacht wird.
-
Für die Vermittlungseinheit
kann eine Eingabewarteschlange vorgesehen werden, um darin die am
Eingabeport ankommenden Datenpakete zu speichern. Der Vorteil einer
solchen Warteschlange besteht darin, dass sie die Datenpakete puffern
kann, wobei im Gegensatz zu den Ausgabepuffern, in denen mehrere
Exemplare gespeichert werden, für
jedes Datenpaket nur ein Exemplar gespeichert wird.
-
Zum
Verwalten der Adressen des Ausgabepuffers kann ein Adressmanager,
und zum Eingeben der Adressen, an denen die Datenpakete im Ausgabepuffer
gespeichert werden, in die Ausgabewarteschlangen kann ein Ausgabewarteschlangen-Router vorgesehen
werden.
-
Eine
Umgehung zum Transportieren der Nutzdaten vom Eingabeport direkt
zum Multiplexer hat den Vorteil, dass die Datenpakete ohne Inanspruchnahme
der Ausgabepuffer, einer Adresse und der Ausgabewarteschlangen verarbeitet
werden können.
Dies bietet eine Zeitersparnis und verringert die Systemauslastung
und das Risiko des Datenstaus.
-
Ein
Datenstaudetektor kann verwendet werden, um das Datenpaket über die
entsprechende Umgehung leiten zu können, wenn der entsprechende
Multiplexer in der Lage ist, das Datenpaket zu seinem Ausgabeport
zu multiplexen. Mittels dieser einfachen Lösung kann entschieden werden,
ob ein Datenpaket direkt zum Ausgabeport geführt werden kann.
-
Die
Ausgabewarteschlangen können
für die Adressen
insgesamt mehr Speicherplatz bereitstellen als der entsprechende
Ausgabepuffer über Adressen
verfügt.
Wenn die Ausgabewarteschlangen mehr Speicherplatz aufweisen als
der Ausgabepuffer Adressen hat, kann eine Ungleichverteilung zwischen
den verschiedenen Ausgabewarteschlangen ohne Verlust von Datenpaketen
erfolgen. Eine extreme Ungleichverteilung könnte vollständig gepuffert werden, wenn
die Anzahl der Speicherplätze
jeder Ausgabewarteschlange so groß ist wie die Anzahl der Adressen
im entsprechenden Ausgabepuffer.
-
Ein
Eingabepuffer mit mindestens so vielen Eingabewarteschlangen wie
Ausgabeports der Vermittlungsanordnung verringert das Risiko einer HOL-Blockierung
(head-of-the-line blocking) am Eingabeport, wobei die Eingabewarteschlangen
zum Sortieren der ankommenden Datenpakete entsprechend ihrem mindestens
einen zugewiesenen Ausgabeport dienen.
-
Eine
Eingabesteuerung für
jeden Eingabeport, welche beim Multiplexen der Datenpakete von den
Eingabewarteschlangen zur Vermittlungseinheit die Reihenfolge festlegt,
ist insofern von Vorteil, als sie für die entsprechenden Eingabewarteschlangen eine
unabhängige
Steuerung bewirkt und so die Komplexität des Mechanismus der Eingabewarteschlangensteuerung
verringert.
-
Ein
Schwellenwertkomparator der Ausgabewarteschlangen kann zur Signalisierung
an die Eingabepuffer verwendet werden, wenn ein Schwellenwert der
belegten Speicherplätze
aller zu einem gemeinsamen Ausgabeport gehörenden Ausgabewarteschlangen überschritten
worden ist. Ein solcher gemeinsamer Schwellenwertkomparator, der
die Belegung aller zu demselben Ausgabeport gehörenden Ausgabewarteschlangen
zusammenfasst, ist von Vorteil, weil so der für diesen einen Ausgabeport
anstehende Datenverkehr gemessen und eine Rückmeldung an die Eingabewarteschlangen
erzeugt wird, sodass der Datenverkehr bei einem Paketrückstau effektiv
gesteuert werden kann.
-
Wenn
der Schwellenwertkomparator der Ausgabewarteschlangen ein Signal
sendet, dass der Schwellenwert der belegten Speicherplätze in allen zu
demselben Ausgabeport gehörenden
Ausgabewarteschlangen überschritten
ist, soll nur die demselben Ausgabeport entsprechende Eingabewarteschlange
daran gehindert werden, ihre Datenpakete zu diesem Ausgabeport zu
liefern. Wenn dabei die Rückmeldung
vom Schwellenwertkomparator an die Eingabewarteschlangen selektiv
erfolgt, also an diejenigen Eingabewarteschlangen, in denen sich
Datenpakete für
den entsprechenden Ausgabeport befinden, bei dem es zum Rückstau kam,
bringt dies den Vorteil mit sich, dass der Rückstau nicht zu einer unnötigen Blockierung
führt.
Dadurch wird auch im Falle eines Paketrückstaus der Effekt der HOL-Blockierung
verringert.
-
Ein
Datenstaudetektor kann am Ausgabepuffer bereitgestellt werden, um
dem dem Ausgabepuffer entsprechenden Eingabepuffer mitzuteilen, dass
ein Schwellenwert der belegten Adressen im Ausgabepuffer überschritten
ist. Ein solcher Datenstaudetektor am Ausgabepuffer ist insofern
praktisch, als das Risiko des Verlustes von Datenpaketen aufgrund
eines voll belegten Ausgabepuffers verringert wird.
-
Die
Adresse eines Multicast-Datenpakets kann in jede der Ausgabewarteschlangen
für diejenigen
Ausgabeports eingegeben werden, zu denen dieses Multicast-Datenpaket
gelangen soll, und die Adresse wird durch den Adressmanager erst
dann zur Verwendung durch ein anderes Datenpaket freigegeben, wenn
alle Einträge
des Multicast-Datenpakets benutzt worden sind, um das Multicast-Datenpaket
zu den für
das Datenpaket vorgesehenen Ausgabeports zu bringen. Somit können Multicast-Datenpakete
dadurch verarbeitet werden, dass die Nutzdaten nur einmal im Ausgabepuffer
gespeichert werden und ihre Adresse in die Ausgabewarteschlange
jedes Ausgabeports eingegeben wird, zu welchem dieses Datenpaket
gelangen soll. Es kann ein Zähler
verwendet werden, dessen Wert jedes Mal verringert wird, wenn die
Adresse aus der Ausgabewarteschlange gelesen wird, und beim Erreichen
des Zählerstandes
null die Freigabe der Adresse zur weiteren Verwendung auslöst.
-
Bei
Datenpaketen mit verschiedenen Verarbeitungsprioritäten kann
für jede
Prioritätsklasse
und jeden Ausgabeport im Eingabepuffer eine separate Eingabewarteschlange
vorgesehen werden. Mittels verschiedener Eingabewarteschlangen zur
Verarbeitung verschiedener Prioritäten können Datenpakete mit höherer Priorität schneller
als solche mit niedrigerer Priorität verarbeitet werden.
-
Ein
Demultiplexer kann dazu verwendet werden, für jedes der ankommenden Datenpakete
einen Eintrag in diejenigen Eingabewarteschlangen vorzunehmen, die
in der Zielinformation des entsprechenden Datenpakets angegeben
sind, wobei jede Eingabesteuerung dafür ausgelegt ist, die gleichzeitige Übertragung
derjenigen Datenpakete zuzulassen, deren Einträge sich in verschiedenen Eingabewarteschlangen
befinden und deren Nutzdaten identisch sind. Auf diese Weise können Datenpakete
gemultiplext werden, indem für
jeden zugeordneten Ausgabeport Exemplare in die entsprechende Eingabewarteschlange
gestellt und diese Exemplare gleichzeitig gemultiplext werden, wenn
der Status des Ausgabeports dies erlaubt. Jeder Eintrag kann zumindest
die Nutzdaten des entsprechenden Datenpakets oder einen Zeiger auf
eine Speicherzelle umfassen, in der zumindest die Nutzdaten des
entsprechenden Datenpakets gespeichert sind, wobei sich die Speicherzelle
vorzugsweise in einem gemeinsamen Eingabepuffer befindet. Somit
ist auch im Eingabepuffer ein System realisierbar, das nur den Header
in die Warteschlange stellt und die Nutzdaten in einem separaten
Speicherbereich speichert, der auch als gemeinsamer Eingabepuffer
bezeichnet wird. In einem solchen Fall brauchen die Nutzdaten eines
Multicast-Datenpakets nur einmal gespeichert zu werden, wodurch
Speicherplatz gespart wird.
-
Der
Demultiplexer kann so beschaffen sein, dass in den Eingabewarteschlangen
mehrere Einträge
vorgenommen werden, aber nur ein Eintrag für deren Nutzdaten in einer
Speicherzelle erfolgt.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Die
Erfindung schlägt
eine Vermittlungsanordnung zum Transportieren von Datenpaketen von Eingabeports
einer Vermittlungseinheit zu deren Ausgabeports vor. Die Datenpakete
umfassen Nutzdaten. Hierzu kommen noch Zielinformationen für das Datenpaket.
Die Vermittlungseinheit ist in der Lage, die ankommenden Datenpakete
entsprechend den Zielinformationen für das jeweilige Datenpaket zu
mindestens einem dem Datenpaket zugeordneten Ausgabeport weiterzuleiten.
-
Die
Vermittlungsanordnung umfasst für
jede Gruppe von Eingabeports in der Vermittlungseinheit eine Gruppe
von Ausgabepuffern. Eine solche Gruppe von Eingabeports kann einen
oder mehrere Eingabeports umfassen. Die Gruppe von Ausgabepuffern
umfasst für
jede Gruppe von Ausgabeports einen Ausgabepuffer zum Speichern zumindest
der Nutzdaten jedes an dem entsprechenden Eingabeport aus der Gruppe
der Eingabeports ankommenden Datenpakets an einer Adresse in mindestens denjenigen
Ausgabepuffern, die zu derselben Gruppe von Ausgabepuffern sowie
zu den für
das Datenpaket vorgesehenen Ausgabeports gehören. Eine Gruppe von Ausgabeports
kann einen oder mehrere Ausgabeports umfassen. Für mindestens einen der Ausgabepuffer
ist eine Gruppe von Ausgabewarteschlangen vorgesehen, die für jeden
Ausgabeport eine Ausgabewarteschlange umfasst, um darin die entsprechend
den Zielinformationen für
das Datenpaket geordneten Adressen aller Nutzdaten zu speichern,
die im entsprechenden Ausgabepuffer gespeichert sind. Für die zu
demselben Ausgabeport gehörenden
Ausgabewarteschlangen steuert ein Arbiter eine Lesereihenfolge der
gespeicherten Adressen. Für
die zu derselben Gruppe von Ausgabeports gehörenden Ausgabepuffer multiplext
ein Multiplexer die gespeicherten Nutzdaten entsprechend der Lesereihenfolge
von den Ausgabepuffern zu den Ausgabeports.
-
In
dieser Vermittlungsanordnung werden die Datenpakete nicht nur in
einem Ausgabepuffer gespeichert und anschließend zu dem jeweils zugeordneten
Ausgabeport weitergeleitet, sondern das Datenpaket wird bereits
in einem Ausgabepuffer gespeichert, der dem richtigen Ausgabeport
zugewiesen ist. Anschließend
ist kein Routing mehr erforderlich. Der einzige Schritt nach dem
Speichern der Datenpakete besteht darin auszuwählen, welches der Datenpakete
möglicherweise
zu seinem Ausgabeport weitergeleitet werden darf. Diese Aufgabe
wird durch den Arbiter und den Multiplexer erledigt. Das Speichern
der Datenpakete in den Ausgabepuffern kann auf unterschiedliche
Weise erfolgen.
-
Zum
Einen kann für
alle zu demselben Eingabeport gehörenden Ausgabepuffer nur ein
Adressmanagement und eine Gruppe von Ausgabewarteschlangen vorgesehen
werden. Dadurch wird die Steuerung erleichtert und der hierfür erforderliche Speicherplatz
verringert.
-
Zum
Anderen kann jeder Ausgabepuffer einer eigenen Gruppe von Ausgabewarteschlangen mit
einem separaten Adressbereich zugewiesen werden. Die zusätzliche
Schaltlogik bewirkt eine Vergrößerung des
Adressbereichs und vergrößert dadurch die
Durchsatzkapazität
für blockweisen
Datenverkehr von Datenpaketen.
-
Eine
Umgehung zum direkten Leiten der Datenpakete von den Eingabeports
zu den Ausgabeports kann zusammen mit einem Mechanismus vorgesehen
werden, welcher der Umgehung anzeigt, dass sie genutzt werden kann.
Diese Umgehung verringert die Komplexität bei der Verarbeitung von
Datenpaketen bei geringem Datenverkehr.
-
BESCHREIBUNG
DER ZEICHNUNGEN
-
Beispiele
der Erfindung werden in den Zeichnungen dargestellt und im Folgenden
in Form von Beispielen ausführlich
beschrieben. Gezeigt werden in:
-
1 eine
Vermittlungsanordnung mit Eingabepuffern mit einer Gruppe von Ausgabepuffern für jeden
Eingabeport,
-
2 eine
Vermittlungsanordnung mit Eingabepuffern mit einer Gruppe von Ausgabepuffern für jeden
Eingabeport und mit einer Gruppe von verwendeten Ausgabewarteschlangen
für jeden
Ausgabepuffer,
-
3 einen
Ausgabepuffer mit Ausgabewarteschlangen, Arbiter, Multiplexer und
einer Umgehung,
-
4 eine
Vermittlungsanordnung mit Eingabepuffern, bei welcher die Eingabeports
und die Ausgabeports paarweise zu Gruppen zusammengefasst sind.
-
Alle
Figuren sind zur besseren Veranschaulichung nicht in ihren tatsächlichen
Abmessungen dargestellt, und die Abmessungen untereinander entsprechen
nicht dem tatsächlichen
Maßstab.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Im
Folgenden werden verschiedene beispielhafte Ausführungsarten der Erfindung beschrieben.
-
In 1 ist
eine Vermittlungsanordnung mit Eingabepuffern zur Verarbeitung von
Datenpaketen dargestellt. Die Anordnung umfasst eine Vermittlungseinheit 10 mit
einer Anzahl von N Eingabeports 20 und einer Anzahl von
N Ausgabeports 30. Die Anzahl N ist im vorliegenden Falle
gleich 32. An jedem Eingabeport 20 mit der Bezeichnung „IP" ist ein Eingabepuffer 11 mit
der Bezeichnung „IB" angeordnet. Jeder
Eingabepuffer 11 umfasst eine Eingabesteuerung 25 mit
der Bezeichnung „Ctrl", die wiederum mit der
Vermittlungseinheit 10 verbunden ist. Die Aufgabe besteht
darin, die über
die Datenübertragungsleitungen 50 an
den Eingabepuffern 11 ankommenden Datenpakete zu einem
oder mehreren Ausgabeports 30 weiterzuleiten. Von den Ausgabeports 30 können die
Datenpakete zu weiteren Einheiten weitergeleitet werden, zum Beispiel
zu Vermittlungseinheiten oder Empfangseinheiten usw.
-
Die
Datenpakete werden im vorliegenden Falle in einen Header-Bereich und einen
Nutzdatenbereich aufgeteilt. Im Header- Bereich sind die Zielinformationen für das Datenpaket
enthalten, welche angeben, zu welchem der Ausgabeports 30 das
betreffende Datenpaket geleitet werden soll. Solche Zielinformationen
können
für das
Datenpaket auch aus anderen Quellen bezogen werden, sodass das Datenpaket
die Zielinformationen nicht zu umfassen braucht. Bezüglich der
Zielinformationen unterscheiden sich die Datenpakete in zwei Arten:
Unicast-Datenpakete und Multicast-Datenpakete. Unter einem Unicast-Datenpaket
ist ein Datenpaket zu verstehen, bei dem nur einer der Ausgabeports 30 als
Ziel in Frage kommt. Ein Multicast-Datenpaket hingegen ist für mehr als
nur einen der Ausgabeports 30 bestimmt. Definitionsgemäß ist somit
unter einem Multicast-Datenpaket ein Datenpaket zu verstehen, dessen
Nutzdaten für
mehrere Ausgabeports 30 vorgesehen sind. Im Nutzdatenbereich
eines Datenpakets können
beliebige Daten enthalten sein, die zu einem Ziel geleitet werden
sollen.
-
EINGABEPUFFER
-
Die
Eingabepuffer 11 sind jeweils in eine Vielzahl von Eingabewarteschlangen 12 aufgeteilt, wobei
jeder Eingabepuffer 11 für jeden Ausgabeport 30 über genau
eine solche Eingabewarteschlange 12 verfügt. Somit
umfasst im vorliegenden Falle jeder Eingabepuffer 11 N
Eingabewarteschlangen 12. Jede dieser Eingabewarteschlangen 12 in
einem Eingabepuffer 11 dient zur Speicherung der ankommenden
Datenpakete für
einen vorgesehenen Ausgabeport 30. Demnach werden die ankommenden
Datenpakete in jedem Eingabepuffer 11 entsprechend ihrem
Ziel-Ausgabeport 30 geordnet.
Wenn also ein Unicast-Datenpaket, das zu einem bestimmten Ausgabeport 30 geleitet
werden soll, dadurch blockiert wird, dass dieser Ausgabeport 30 besetzt
ist, werden durch diese HOL-Blockierung durch das Unicast-Datenpaket
am Eingabeport ausschließlich
solche Datenpakete blockiert, die zu demselben Ausgabeport 30 gelangen
wollen, während
Datenpakete, die zu einem anderen Ausgabeport 30 gelangen
wollen, unabhängig
davon verarbeitet und zur Vermittlungseinheit 10 weitergeleitet
werden können,
wenn der Pfad zu ihrem Ziel-Ausgabeport 30 frei ist. Diese
zielgerichtete Sortierung wird auch als virtuelle Ausgabewarteschlange
(Virtual Output Queuing, VOQ) bezeichnet. Die Vielzahl der Eingabewarteschlangen 12 insgesamt
wird ebenfalls als VOQ bezeichnet.
-
Zur
Verteilung der auf der entsprechenden Datenübertragungsleitung 50 ankommenden
Datenpakete auf die richtigen Eingabewarteschlangen 12 umfasst
der Eingabepuffer 11 einen Demultiplexer 19, der
auch als Eingabewarteschlangen-Router
(Input Queue Router, IQR) bezeichnet wird. Zum Auswählen der
Datenpakete aus den Eingabewarteschlangen 12 und zum Liefern
der Datenpakete über den
entsprechenden Eingabeport 20 zur Vermittlungseinheit 10 umfasst
der Eingabepuffer 11 einen Warteschlangenselektor 21 mit
der Bezeichnung QS, der als Multiplexer dient. Der Warteschlangenselektor 21 wählt zu einem
bestimmten Zeitpunkt eine der Eingabewarteschlangen 12 aus,
entnimmt dieser Eingabewarteschlange 12 ein Datenpaket
und sendet dieses über
seinen Ausgabeport 20 zur Vermittlungseinheit 10.
Der Auswahlprozess wird durch die Eingabesteuerung 25 gesteuert,
welche die für
sie nötigen
Informationen von der Vermittlungseinheit 10 erhält. Die
Eingabesteuerung 25 teilt dem Warteschlangenselektor 21 zu
einem bestimmten Zeitpunkt mit, ob dieser ein Datenpaket zur Vermittlungseinheit 10 senden
kann, und wenn dies der Fall ist, von welcher Eingabewarteschlange 12 dieses
Datenpaket zur Vermittlungseinheit 10 bzw. zu einem oder mehreren
ihrer Ausgabeports 30 gesendet werden kann. Die Reihenfolge
zum Abrufen der gespeicherten Datenpakete aus den verschiedenen
Eingabewarteschlangen 12 wird vor allem durch die Verfügbarkeit
der Ausgabeports 30, d. h. ihren Belegungszustand, bestimmt.
Wenn ein Ausgabeport 30 nicht beschäftigt ist, steht er zum Empfangen
eines Datenpakets zur Verfügung,
was der Eingabesteuerung 25 mitgeteilt wird. Die Eingabesteuerung 25 fungiert
als Warteschlangen-Arbiter, indem sie auswählt, welches Datenpaket aus
welcher Eingabewarteschlange 12 zu welchem Zeitpunkt vom
Eingabepuffer 11 zur Vermittlungseinheit 10 gesendet
werden soll. Für
jeden Eingabeport 20 ist ein solcher Eingabepuffer 11 vorgesehen.
-
Multicast-Datenpakete
können
durch den Demultiplexer 19 verteilt werden, indem ein Eintrag
in jede Eingabewarteschlange 12 eingegeben wird, deren
entsprechender Ausgabeport 30 in dem Zieldaten-Header des
Datenpakets angegeben ist. Das bedeutet, dass das Multicast-Datenpaket
kopiert und selbst in jede dieser Eingabewarteschlangen 12 eingegeben
wird. Ferner bedeutet dies, dass jedes Multicast-Datenpaket, das
zu einer Anzahl von n verschiedenen Ausgabeports 30 geleitet
wird, kopiert und in eine Warteschlange eingetragen wird, sodass sich
in dem Eingabepuffer 11, in welchem das Multicast-Datenpaket
angekommen ist, insgesamt n Exemplare des Datenpakets befinden.
Auf der Seite des Warteschlangenselektors 21 kann von dem
Verfahren, zu jedem Zeitpunkt nur ein einziges Datenpaket abzurufen,
insofern abgewichen werden, als bei Multicast-Datenpaketen mehrere
Exemplare des Datenpakets gleichzeitig zur Vermittlungseinheit 10 gesendet
werden dürfen.
Dadurch kommt es seltener zur Sperrung von Multicast-Datenpaketen.
Mit anderen Worten, der durch das Kopieren und Verteilen eines Multicast-Datenpakets
im Demultiplexer 19 bewirkte Nachteil wird durch den Vorteil
aufgehoben, dass in den Weiterleitungsprozess im Warteschlangenselektor 21 mehrere
Pakete mit gleichen Nutzdaten einbezogen werden. Alternativ kann
ein solches Multicast-Datenpaket
lediglich in einer der Eingabewarteschlangen 12 oder in
einer separaten Multicast-Warteschlange gespeichert und von dort
zerstörungsfrei für alle ihre
Ziel-Ausgabeports 30 gelesen werden.
-
VERMITTLUNGSBEREICH
-
Die
Vermittlungseinheit 30 umfasst für jeden Eingabeport 20 einen
separaten Vermittlungsbereich. Jeder dieser Vermittlungsbereiche
umfasst eine Gruppe von Ausgabepuffern 35 und für jeden der
Ausgabepuffer 35 einen separaten Eingabe-Router 13 an
dessen Eingangsseite und einen separaten Zellenselektor 14 an
dessen Ausgangsseite. Der Eingabe-Router 13 kann im vorliegenden
Falle ein einfacher Repowering Tree oder ein Demultiplexer sein. Jeder
Vermittlungsbereich umfasst außerdem
eine Gruppe von Ausgabewarteschlangen 18 mit einem Ausgabewarteschlangen-Router 17 an
deren Eingangsseite und einen Adressmanager 16, der als Eingang
für alle
Ausgabewarteschlangen-Router 17 des Vermittlungsbereichs
dient. Die Gruppe der Ausgabepuffer 35 enthält für jeden
Ausgabeport 30 einen Ausgabepuffer 35. Die Gruppe
der Ausgabewarteschlangen 18 enthält für jeden Ausgabeport 30 eine Ausgabewarteschlange 18.
Somit enthält
jeder Vermittlungsbereich N Ausgabepuffer 35, N Eingabe-Router 13,
N Zellenselektoren 14, N Ausgabewarteschlangen 18,
1 Ausgabewarteschlangen-Router 17 und 1 Adressmanager 16.
Der Ausgabewarteschlangen-Router 17 kann auch ein einfacher
Demultiplexer oder Repowering Tree sein.
-
Wie 1 zeigt,
kann für
jeden Ausgabepuffer 35 auch eine Gruppe von Ausgabewarteschlangen 18 vorgesehen
werden, wobei diese Gruppen bei der vorliegenden Ausführungsart
jedoch nicht genutzt werden. Da bei einem Fertigungsprozess die Fertigung
bestimmter Komponenten oft billiger ist, wenn diese identisch sind
und die Verwendung eines einzigen Prozesses mit identischen Masken
und Parametern gestatten, kann es von Vorteil sein, jeden der Ausgabepuffer 35 zwar
mit seiner eigenen Gruppe von Ausgabewarteschlangen 18 auszustatten, aber
diese zusätzlichen
Gruppen von Ausgabewarteschlangen 18 in der fertigen Schaltung
nicht zu nutzen. In diesem Sinne wird hier im Grunde nur eine Gruppe
von Ausgabewarteschlangen 18 genutzt. Dasselbe gilt für den Adressmanager 16 und
den Ausgabewarteschlangen-Router 17.
-
Somit
verfügt
jeder der Eingabepuffer 11 über seine eigene, ebenfalls
mit „IR" bezeichnete, Gruppe
von Eingabe-Routern 13, mit denen der Eingabepuffer 11 über den
entsprechenden Eingabeport 20 verbunden ist. An der Ausgangsseite
jedes Eingabe-Routers 13 ist der ebenfalls mit „OB" bezeichnete entsprechende
Ausgabepuffer 35 angeordnet, der als Zwischenspeicher zur
Speicherung der vom entsprechenden Eingabe-Router 13 kommenden Datenpakete
dient. Die Ausgangsseite des Ausgabepuffers 35 führt zu dem
ebenfalls mit „OR" bezeichneten entsprechenden
Zellenselektor 14. Die Ausgabepuffer 35 sind gleich
groß und
umfassen jeweils eine bestimmte Anzahl von Speicherplätzen, die
hier auch als Zellen bezeichnet werden. Jeder dieser Speicherplätze kann
ein Datenpaket enthalten und besitzt eine spezifische Adresse.
-
Parallel
zu einem der Eingabe-Router 13 und dem ihm entsprechenden
Ausgabepuffer 35 sind der Ausgabewarteschlangen-Router 17 und
die Gruppe von Ausgabewarteschlangen 18 angeordnet. Der ebenfalls
mit „AM" bezeichnete Adressmanager 16 ist
zwischen dem Zellenselektor 14 dieses Ausgabepuffers 35 und
dessen Eingabe-Router 13 sowie zwischen diesem Zellenselektor 14 und
dem Ausgabewarteschlangen-Router 17 angeordnet. Von der Gruppe
von Ausgabewarteschlangen 18 ist für jeden Ausgabeport 30 eine
ebenfalls mit „OQ" bezeichnete Ausgabewarteschlange 18 vorgesehen.
Jede Ausgabewarteschlange 18 empfängt eine Eingabe vom Ausgabewarteschlangen-Router 17 und
liefert eine Eingabe für
einen anderen Arbiter 23, wobei jeder dieser Arbiter 23 mit
einem Multiplexer 22 verbunden ist und beide einem der
Ausgabeports 30 zugewiesen sind.
-
Diese
Anordnung ist für
alle Eingabeports 20 identisch. Somit gibt es N Arbiter 23 und
N Multiplexer 22, also je einen für jeden Ausgabeport 30.
Die N Ausgabepuffer 35 jedes der Eingabeports 20 sind den
N Ausgabeports 30 zugewiesen. Dies bedeutet, dass die in
einem bestimmten Ausgabepuffer 35 gespeicherten Datenpakete
immer über
ihren Zellenselektor 14 zu demselben Ausgabeport 30 geleitet
werden. Da es für
jeden der N Eingabeports eine Gruppe von N solcher Ausgabepuffer 35 gibt,
empfängt
jeder Ausgabeport 30 seine Datenpakete von N solcher Ausgabepuffer 35.
-
Alle
von einem Eingabeport 20 ankommenden Datenpakete werden über dessen
Eingabe-Router 13 zu seinen Ausgabepuffern 35 geleitet.
Der entsprechende Adressmanager 16 versorgt die Eingabe-Router 13 desselben
Vermittlungsbereichs mit der Information, an welchem Speicherplatz
der Ausgabepuffer 35, d. h. unter welcher Adresse, die
ankommenden Datenpakete gespeichert werden sollen. Im vorliegenden
Falle wird die Adresse in gleicher Weise für alle Ausgabepuffer 35 verwendet,
die zu derselben Gruppe von Ausgabepuffern 35 gehören. Das bedeutet,
dass das Datenpaket in allen zu dieser Gruppe gehörenden Ausgabepuffern 35 unter
derselben Adresse gespeichert wird. Dies ist gleichbedeutend mit
einer Vervielfachung des Datenpakets, da dieses N mal gespeichert
wird.
-
ADRESSMANAGEMENT
-
Die
Information, in welcher die Adresse in den Ausgabepuffern 35 jedes
zu einem bestimmten Ausgabeport 30 zu leitenden Datenpakets
gespeichert ist, wird über
den entsprechenden Ausgabewarteschlangen-Router 17 in die
entsprechenden Ausgabewarteschlangen 18 geschrieben. Diese
Information wird als Lieferinformation bezeichnet. Für jedes
in diesen Ausgabepuffern 35 gespeicherte Datenpaket wird
eine solche Lieferinformation in die zu demjenigen Ausgabeport 30 gehörende Ausgabewarteschlange 18 eingegeben,
an welchen dieses Datenpaket gesendet werden soll. Dabei werden
diese Adressen nach den entsprechenden Ausgabeports 30 sortiert,
d. h. nach denjenigen Ausgabeports 30, zu denen die unter
den entsprechenden Adressen gespeicherten Datenpakete geleitet werden.
Die Lieferinformation, welche besagt, in welche der Ausgabewarteschlangen 18 die
betreffende Adresse eingegeben werden soll, kann vom Ausgabepuffer 11 abgerufen
werden, da dort dasselbe Prinzip der Warteschlangenspeicherung bereits
für das
gesamte Datenpaket angewendet wurde. Die Einstellungen des Warteschlangenselektors 21 können somit
für die Einstellungen
des Ausgabewarteschlangen-Routers 17 verwendet
werden.
-
Das
Adressmanagement ist zentral organisiert, das heißt, dass
einem Unicast-Datenpaket nur eine Adresse zugewiesen wird, die dann
für alle
zu demjenigen Eingabeport 20 gehörenden Ausgabepuffer 35 verwendet
wird, an welchem das Datenpaket angekommen ist. Daher wird für die gesamte Gruppe
von Ausgabepuffern 35 für
einen Eingabeport 20 im Grunde nur ein Adressmanager 16 benötigt. Der
Adressmanager 16 empfängt
von einem der Zellenselektoren 14 desselben Vermittlungsbereichs eine
Information, die dem Adressmanager 16 mitteilt, wann eine
Adresse wiederverwendet werden kann, weil das entsprechende Datenpaket
verarbeitet worden ist und die Adresse nicht mehr belegt. Die Adresse
wird dann freigegeben und in einen Pool freier Adressen eingefügt, der
durch den Adressmanager 16 verwaltet wird. Aus diesem Pool
wählt der
Adressmanager 16 die Adressen aus, um sie den später ankommenden
Datenpaketen zuzuweisen.
-
Somit
können
für jeden
Ausgabeport 30 die gespeicherten Adressen der Datenpakete,
die später an
diesem Ausgabeport 30 ankommen sollen, aus der entsprechenden
Ausgabewarteschlange 18 abgerufen werden. Der Adressmanager 16 verarbeitet dabei
zu jedem Zeitpunkt gleichzeitig je eine Adresse für jede Ausgabewarteschlange 18.
Für den
Eingabeport 20 wird eine Adresse bereitgehalten, was bereits
vor dem Eintreffen der betreffenden Datenpakete erfolgen kann. Jedes
am Eingabeport 20 ankommende Datenpaket findet somit eine
Adresse vor, zu welcher es durch die entsprechenden Eingabe-Router 13 geleitet
werden soll. Diese Adresse stellt der Adressmanager 16 dem
Ausgabewarteschlangen-Router 17 zur Verfügung, der
einen weiteren Eingabewert in Form der Zielinformation für das Datenpaket
empfängt,
die wiederum die Maske für
die Ausgabewarteschlange 18 bereitstellt, in welche die
Lieferinformation für
die angekommenen Datenpakete eingegeben werden soll. Was passiert,
wenn keine Adressen zur Verfügung
stehen, wird weiter unten erörtert.
-
Jedem
an einem Eingabeport 20 ankommenden Datenpaket wird durch
den betreffenden Adressmanager 16 eine Adresse zugewiesen,
unter welcher dieses Datenpaket dann in den entsprechenden Ausgabepuffern 35 gespeichert
wird, wobei die Adresse an einem Speicherplatz in der Ausgabewarteschlange 18 gespeichert
wird, die dem Ausgabeport 30 entspricht, zu dem das Datenpaket
geleitet wird. Die Information hierfür, d. h. die Zielinformation für das Datenpaket,
kann dem Header des Pakets entnommen werden.
-
Der
nachfolgende Arbiter 23 nimmt dann zusammen mit dem entsprechenden
Multiplexer 22 die abschließende Verteilung vor, indem
der Arbiter 23 für
seinen Ausgabeport 30 die nächste Adresse aus der entsprechenden
Ausgabewarteschlange 18 abruft und in den Multiplexer 22 einspeist,
der dann das Datenpaket von dieser Adresse abruft und zu seinem Ausgabeport 30 weiterleitet,
der das Ziel dieses Datenpakets darstellt.
-
SPEICHERN
UND LESEN VON DATENPAKETEN
-
Wenn
ein Datenpaket ankommt, stellt der Adressmanager 16, falls
vorhanden, eine freie Adresse zur Verfügung, und das Datenpaket wird
in den Ausgabepuffern 35 an diesem Speicherplatz gespeichert;
ansonsten wird das Datenpaket ganz gelöscht.
-
Im
Grunde wird das gerade verarbeitete Datenpaket in alle Ausgabepuffer 35 desselben
Vermittlungsbereichs geschrieben. Das ist aber nur dann erforderlich,
wenn ein Multicast-Datenpaket zu allen Ausgabeports gelangen soll.
Somit kann das Schreiben in die Ausgabepuffer 35 durch
eine Maske gesteuert werden. Diese Maske liegt bereits in Form der Zielinformation
für das
Datenpaket vor. Sie kann zum Beispiel in Form einer Bitmap vorliegen,
die für
jeden Ausgabeport 30 ein Bit umfasst, das für jeden
als Ziel des Datenpakets angegebenen Ausgabeport 30 auf 1
gesetzt wird. Bei Verwendung dieser Bitmap als Maske für die Eingabe-Router 13 können nur
diejenigen Eingabe-Router aktiv werden, für die das entsprechende Bit
in der Bitmapmaske gesetzt wurde. Dadurch wird zwar keine Zeit,
aber Energie eingespart.
-
Ein
Unicast-Datenpaket ist zwar in allen Ausgabepuffern 35 des
Vermittlungsbereichs des Eingabeports 20 gespeichert, an
dem das Datenpaket angekommen ist, wird aber tatsächlich nur
aus einem der Ausgabepuffer 35 gelesen, nämlich aus
dem Ausgabepuffer, der zu dem Ausgabeport 30 gehört, zu dem
das Datenpaket geleitet wird.
-
Der
Schritt des Abrufens des Datenpakets aus den Ausgabepuffern 35 kann
in Form eines zerstörungsfreien
Leseprozesses erfolgen. Nach dem Lesen des Datenpakets aus dem Ausgabepuffer 35 wird
die betreffende Adresse in der Form freigegeben, dass diese Adresse
wieder zum entsprechenden Adressmanager 16 zurückgeführt wird,
der diese Adresse wiederum dem Eingabeport 20 zuweisen kann,
um das nächste
ankommende Datenpaket zu verarbeiten. Durch die Wiederverwendung
dieser Adresse wird auch der entsprechende Speicherplatz in den
Ausgabepuffern 35 wiederverwendet und das zuvor darin befindliche
Datenpaket einfach überschrieben.
-
Für Multicast-Datenpakete
kann ein in der Zeichnung nicht dargestellter Zähler verwendet werden. Ein
solcher Zähler
wird dann für
jede Adresse eingerichtet, d. h., es gibt genauso viele Zähler wie ein
Ausgabepuffer 35 Speicherplätze hat. Nach der Speicherung
des Datenpakets unter einer bestimmten Adresse wird der entsprechende
Zähler
gleich der Anzahl der Ausgabeports 30 gesetzt, zu denen dieses
Datenpaket weitergeleitet werden soll. Der Zähler wird gleich der Anzahl
der durch den Header des Datenpakets geforderten Ziele gesetzt.
Die Adresse wird an jede Ausgabewarteschlange 18 angehängt, für deren
Ausgabeport 30 das Datenpaket vorgesehen ist. Wenn der
Zellenselektor 14 eine Adresse zum Lesen eines Datenpakets
ausgewählt hat,
wird das entsprechende Datenpaket aus dem Ausgabepuffer 35 übertragen.
Der entsprechende Zähler
wird jedes Mal verringert, wenn dieses Datenpaket durch einer der
Zellenselektoren 14 abgerufen wurde. Wenn der Zähler für dieses
Datenpaket den Wert 0 erreicht und somit anzeigt, dass das Datenpaket
allen Zielen zugestellt worden ist, wird dessen Adresse in den Pool
der freien Adressen zurückgeführt, sodass
die entsprechende Adresse zur Wiederverwendung freigegeben werden
kann.
-
Das
Prinzip der gemeinsamen Nutzung des Ausgabepuffers 35 wird
insofern praktiziert, als die Ausgabewarteschlangen 18 insgesamt über mehr Speicherplätze verfügen als
der Ausgabepuffer 35 Adressen hat. Durch diese Maßnahme kann
eine Asymmetrie bei der Verteilung der Datenpakete an ihre Ziele
gepuffert werden. In einer vollkommen gleichberechtigten und symmetrischen
Umgebung dürfte
jede Eingabewarteschlange 12 nur 1/N des Speichervolumens
des Ausgabepuffers nutzen. In Wirklichkeit kann jedoch eine solche
Eingabewarteschlange 12 zu jedem Zeitpunkt mehr Datenpakete empfangen
als dem ihr zustehenden Anteil entspricht, während andere Eingabewarteschlangen 12 in
demselben Eingabepuffer möglicherweise
weniger Datenpakete empfangen als ihnen zustehen. Durch die gemeinsame
Nutzung des Ausgabepuffers kann eine solche Asymmetrie ausgeglichen
und das Speichervolumen des Ausgabepuffers besser genutzt werden.
Solange der gesamte Datenverkehr der Datenpakete für den einzelnen
Eingabeport 20 die echte maximale Kapazität des Ausgabepuffers 35 nicht überschreitet,
nimmt die Leistung zu, da die Anordnung wesentlich flexibler auf
extreme Datenverkehrsschwankungen reagieren kann. Insbesondere kann blockweiser
Datenverkehr besser bewältigt
werden, da die Wahrscheinlichkeit des Verlustes von Datenpaketen
dadurch verringert wird, dass eine Eingabewarteschlange 12 mehr
Speichervolumen des Ausgabepuffers nutzen kann als ihr bei Gleichverteilung zustünde.
-
Da
jeder Eingabeport 20 über
seine eigene Gruppe von Ausgabewarteschlangen 18 verfügt, stehen
für jeden
Ausgabeport 30 insgesamt N Ausgabewarteschlangen 18 zur
Verfügung.
Alle diese Ausgabewarteschlangen 18, in denen die Adressen
der zu demselben Ausgabeport 30 zu leitenden Datenpakete
gespeichert sind, liefern für
diesen Ausgabeport 30 einen Eingabewert an den Arbiter 23.
Dieser Arbiter 23 legt für seinen Ausgabeport 30 die
Prioritäten
für die
verschiedenen Ausgabewarteschlangen 18 fest, d. h., er
entscheidet, aus welcher Ausgabewarteschlange 18 der entsprechende
Multiplexer 22 zu welchem Zeitpunkt die nächste Adresse
abruft. Dieser Prioritätsentscheidung
kann eine Prioritätsstrategie
zugrunde gelegt werden, zum Beispiel ein Umlaufverfahren oder das
Vorziehen der vollsten Ausgabewarteschlange 18 oder der
letzten noch nicht aufgerufenen Ausgabewarteschlange 18 oder
ein anderes Verfahren. Nach der Auswahl einer bestimmten Ausgabewarteschlange 18 ruft
der Arbiter 23 aus der Warteschlange die erste in dieser
Ausgabewarteschlange 18 wartende Adresse ab und übergibt
sie dem entsprechenden Multiplexer 22, der an seiner Eingangsseite
mit allen zu dem entsprechenden Ausgabeport 30 gehörenden Zellenselektoren 14 verbunden
ist, d. h. mit allen Zellenselektoren 14, deren Ausgabepuffer 35 diesem
Ausgabeport 30 zugewiesen sind. Der Arbiter 23,
der eine bestimmte Ausgabewarteschlange 18 ausgewählt und
daraus die Adresse abgerufen hat, teilt dem zu demselben Eingabeport 20 gehörenden Multiplexer 22 mit,
in welchem der Ausgabepuffer 35 das Datenpaket unter der
abgerufenen Adresse gespeichert ist. Der entsprechende Multiplexer 22 wird
so geschaltet, dass er über
den entsprechenden Zellenselektor 14 auf den Ausgabepuffer 35 zugreift,
das Datenpaket aus dem Ausgabepuffer 35 liest und zum entsprechenden
Ausgabeport 30 weiterleitet. Deshalb empfängt der
Zellenselektor 14 die entsprechende Adresse vom Multiplexer 22 und
wählt die
entsprechende Zelle aus. Alternativ kann diese Adresse auch direkt
vom Arbiter 23 empfangen werden.
-
Da
das Datenpaket für
jeden Ausgabeport 30 kopiert und an einem Speicherplatz
in einem separaten Ausgabepuffer 35 gespeichert wird, wird
kein Ausgabe-Router benötigt,
der mehrere Ausgabeports mit einem oder mehreren Ausgabepuffern 35 verbindet.
Deshalb wird einerseits mehr Speichervolumen benötigt, andererseits kann jedoch
auf den Ausgabe-Router verzichtet werden. Da Speichervolumen wesentlich
billiger ist als der Platz für
eine Router-Logik, verringert dieses Design die Gesamtkosten für die Vermittlungseinheit 10.
Darüber
hinaus wird die Durchsatzgeschwindigkeit erhöht, da ein Ausgabe-Router langsamer
wäre als
der Prozess des Kopierens und Speicherns. Auch der Prozess des Lesens
verläuft
schneller, da für
jeden Ausgabepuffer 35 ein eigener Lesezeiger verwendet
werden kann.
-
Die
Eingabe-Router 13, die Zellenselektoren 14 und
die Multiplexer 22 bieten hier für jeden Eingabeport 20 die
Möglichkeit,
jeden Ausgabeport 30 zu erreichen, ohne eine Sperrung zu
verursachen. Somit kann jeder Eingabeport 20 zu jedem Zeitpunkt
ein Datenpaket zu jedem der Ausgabeports 30 senden, wenn
ein solches Datenpaket ankommt.
-
DESIGNVARIANTE
DES EINGABEPUFFERS
-
Jeder
Eingabeport 20 verfügt über seinen
eigenen Eingabepuffer 11 mit virtueller Ausgabewarteschlange,
d. h. mit den Eingabewarteschlangen 12 für jede Ausgabewarteschlange 18 in
jedem Eingabepuffer 11. Die Eingabepuffer 11 sind
mit ihren eigenen Eingabe-Routern 13 verbunden. Jeder Eingabepuffer 11 verfügt auch über seine
eigene Eingabesteuerung 25 zur Steuerung der Reihenfolge
der von den verschiedenen Eingabewarteschlangen 12 dieses
Eingabepuffers 11 abgehenden Datenpakete. Jede Eingabesteuerung 25 arbeitet
unabhängig
von den anderen Eingabesteuerungen 25.
-
Durch
die gegenseitige Unabhängigkeit
der Eingabesteuerungen 25 wird die Komplexität der gesamten
Steuerungsvorgänge
deutlich verringert. Im vorliegende Falle braucht jede Eingabesteuerung 25 die
ankommenden Datenpakete nur nach einem vorgegebenen Entscheidungsmuster
zu verarbeiten, zum Beispiel nach dem Umlaufverfahren, einem Umlaufverfahren
mit Gleichbehandlung und verschiedenen Prioritätsebenen oder einem anderen
Verfahren.
-
Jede
der Eingabesteuerungen 25 entscheidet eigenständig, welches
der von ihr gespeicherten Datenpakete als nächstes zu den Eingabe-Routern 13 gesendet
wird.
-
Bei
einer anderen Anordnung mit einem gemeinsamen Ausgabepuffer müsste durch
ein Verfahren entschieden werden, welcher der mehreren Eingabesteuerungen 25 das
Recht zukommt, die in der Warteschlange gespeicherten Datenpakete
zu den Eingabeports 20 zu senden. Bei der hier beschriebenen
Anordnung verfügt
jedoch jeder Eingabepuffer 11 über seine eigene Gruppe von
Eingabe-Routern 13,
die unabhängig
von den anderen Gruppen von Eingabe-Routern 13 agieren, und über seine
eigenen Ausgabepuffer 35, die wiederum von den anderen Ausgabepuffern 35 unabhängig sind.
Somit kann aufgrund der Trennung zwischen den Ausgabepuffern 35 und
den Eingabe-Routern 13 jeder Eingabepuffer 11 unabhängig von
den anderen Eingabepuffern 11 seine Datenpakete zu den
Ausgabepuffern 35 weiterleiten. Die einzige Wechselbeziehung zwischen
den verschiedenen Eingabepuffern 11 ergibt sich aus dem
im Folgenden beschriebenen Rückstaumechanismus.
-
Der
Eingabepuffer 11 mit virtueller Ausgabewarteschlange kann
im vorliegenden Falle auch unter Verwendung eines hier nicht dargestellten
zusätzlichen
gemeinsamen Eingabepuffers mit oder ohne gemeinsame Nutzung realisiert
werden. Das bedeutet, dass die ankommenden Datenpakete im gemeinsamen
Eingabepuffer gespeichert werden können, während ihre entsprechenden Adressen
in der Reihenfolge der Ausgabeports 30, zu denen diese
Datenpakete weitergeleitet werden, in den Eingabewarteschlangen 12 gespeichert
sind. Die Adressen stellen somit die Einträge für die Datenpakete dar, die
in die Eingabewarteschlangen 12 eingegeben werden. Bei
Multicast-Datenpaketen braucht in den gemeinsamen Eingabepuffer
nur ein Eintrag eingegeben zu werden, wobei in jede Eingabewarteschlange 12,
die einem Ausgabeport 30 entspricht, zu dem das Multicast-Datenpaket
geleitet wird, ein Eintrag eingegeben wird. Dieser Eintrag in den
Eingabewarteschlangen 12 ist ein Zeiger auf den Speicherplatz,
an welchem das Multicast-Datenpaket oder dessen Nutzdaten im gemeinsamen
Eingabepuffer gespeichert sind. Diese Einträge sind somit für die Multicast-Datenpakete
identisch, und da die Nutzdaten nur einmal gespeichert werden müssen, wird
Speicherplatz eingespart. Zur Implementierung der gemeinsamen Pufferung
der Nutzdaten können
dieselben, hier nicht dargestellten Elemente wie für den Ausgabepuffer 35 verwendet
werden, d. h. ein Adressmanager und ein Eingabe-Router zum Befördern der
Nutzdaten zum gemeinsamen Eingabepuffer. Der Demultiplexer 19 spielt
für die
Eingabewarteschlangen 12 etwa dieselbe Rolle wie der Ausgabewarteschlangen-Router 17 für die Ausgabewarteschlangen 18.
-
Die
Eingabepuffer 11 sind üblicherweise
in Form von Vermittlungsadaptern, die auch als Eingabeadapter oder
einfach als Adapter bezeichnet werden, angeordnet. Bei der vorgeschlagenen
Erfindung kann die Anordnung, die auch als Vermittlungsstruktur
bezeichnet wird, z. B. von 16 Eingabeports 20 und 16 Ausgabeports 30 auf
32 × 32
skaliert werden, indem alle Adapter lediglich ihre Warteschlangenstruktur ändern, wobei
ihr Eingabepuffer 11 am Adapter unverändert bleibt. Vorausschauend
bedeutet dies, dass die konkrete Anzahl der miteinander verknüpften Listen
zur Verwaltung dieser Eingabepuffer 11 als Gesamtheit der
Eingabewarteschlangen 12 programmierbar sein sollte. Auf
jeden Fall nimmt die Komplexität
des Eingabeadapters linear mit N zu, d. h. die Verdoppelung der
Ziele führt
zur Verdoppelung der Anzahl der Eingabewarteschlangen 12 und
der Ausgabewarteschlangen 18. Bei der klassischen VOQ-Anordnung
führt die
Verdoppelung der Anzahl der Eingabeports 20 und Ausgabeports 30 der
Vermittlung zu einer quadratischen Zunahme der Anforderungen, d.
h. eine 16×16-Steuerung
empfängt
256 Anforderungen und eine 32×32-Steuerung
empfängt 1024
Anforderungen.
-
Die
Eingabepuffer 11 lassen sich aufgrund der geringeren Anzahl
der Verbindungsleitungen zwischen den Eingabepuffern 11 und
der Vermittlungseinheit 10 physisch leichter von der Vermittlungseinheit 10 trennen.
Die Eingabepuffer 11 können
daher unter Verwendung billigerer Speicherchips realisiert und somit
in Wirklichkeit zum selben Preis größer ausgelegt werden als die
Ausgabepuffer 35. Bei diesem Schaltschema stellen somit
die begrenzten Eingabepuffer 11 eine bessere Näherung der
theoretischen unbegrenzten Eingabepuffer 11 dar.
-
DATENRÜCKSTAU
-
Es
wird ein Rückkopplungsmechanismus
angeordnet, der den Eingabepuffern 11 mitteilt, wenn die
Gesamtheit der Ausgabewarteschlangen 18 eines bestimmten
Ausgabeports 30 voll ist, d. h., wenn ein bestimmter Schwellenwert
für den Auslastungsgrad
aller Ausgabewarteschlangen 18 für diesen Ausgabeport 30 überschritten
worden ist. Hierzu wird ein Schwellenwertkomparator 26 der
Ausgabewarteschlange mit der Bezeichnung OQT vorgesehen, der alle
Auslastungsgrade derjenigen zu einem einzelnen Ausgabeport 30 gehörenden Ausgabewarteschlangen 18 erfasst,
die auch zum Arbiter 23 dieses Ausgabeports 30 führen. Der
Gesamtauslastungsgrad stellt das genaue Maß für die Anzahl aller Datenpakete
in der Vermittlungseinheit dar, die zu einem bestimmten Ausgabeport 30 geleitet
werden. Diese Gesamtzahl muss also im Schwellenwertkomparator 26 der
Ausgabewarteschlange mit einem oder mehreren vorgegebenen Schwellenwerten
verglichen werden. wenn der Schwellenwert für einen der Ausgabeports 30 überschritten
wurde, wird das oben erwähnte
Signal erzeugt und an die Eingabesteuerungen 25 weitergeleitet.
-
Als
Reaktion auf dieses Signal kann die Eingabesteuerung 25 festlegen,
dass für
diesen Ausgabeport 30 vorgesehene Datenpakete nicht mehr
von den Eingabepuffern 11 abgesendet werden, d. h. die Datenpakete
von den Eingabewarteschlangen 12 für die belegte Ausgabewarteschlange 18 werden
zurückgehalten,
während
die anderen Eingabewarteschlangen 12 mit dem Senden von
Datenpaketen fortfahren können.
-
Ein
solcher OQT 26 ist für
jeden Ausgabeport 30 vorgesehen, und diese können entweder
gemäß der vorliegenden
Darstellung zu einem einzigen OQT 26 zusammengefasst oder
für jeden
Ausgabeport 30 separat angeordnet werden.
-
Das
Rückstauverfahren
kann ebenso durch seine entsprechende negative Ausführungsform,
ein Berechtigungsverfahren, ersetzt werden, bei dem mitgeteilt wird,
ob eine Ausgabewarteschlange 18 noch in der Lage ist, weitere
Einträge
zu empfangen.
-
Eine
weitere Verbesserung lässt
sich durch Rückmeldung
eines Signals an die Eingabesteuerungen 25 erreichen, durch
das die Eingabesteuerungen 25 genauere Informationen über den
Auslastungsgrad der Ausgabewarteschlangen 18 für jeden
der Ausgabeports 30 erhalten. Da zu jedem Zeitpunkt an jedem
Ausgabeport 30 ein Datenpaket zur Weiterleitung zu einer
nachfolgenden Stufe bereitstehen soll, kann die Information, dass
eine Gesamtheit der zu einem Ausgabeport 30 gehörenden Ausgabewarteschlangen 18,
im Folgenden als Gruppe der Port-Ausgabewarteschlangen 18 bezeichnet,
ganz oder fast leer ist, an die Eingabesteuerungen 25 gesendet
und vorzugsweise dazu genutzt werden, dass diejenigen Datenpakete
an die Eingabe-Router 13 gesendet werden, die für den entsprechenden
Ausgabeport 30 vorgesehen sind. Die Statusinformation der
Ausgabewarteschlangen 18 kann z. B. durch Einführen eines
oder mehrerer zusätzlicher
Schwellenwerte abgeleitet werden, z. B. durch einen Schwellenwert
für einen
Auslastungsgrad 0 oder nahezu gleich 0. Eine leere oder fast leere
Gruppe von Ausgabewarteschlangen 18 wird dann den Eingabesteuerungen 25 mitgeteilt,
die dann ihr Steuerungsverfahren dahin gehend ausführen, dass
eine Ausgabewarteschlange 18 dieser Gruppe von Port-Warteschlangen
so bald wie möglich
ein Datenpaket empfängt. Durch
die Einführung
mehrerer solcher Schwellenwerte kann den Eingabesteuerungen 25 ein
fein abgestufter Statusbericht zur Verfügung gestellt werden, die diesen
Statusbericht für
jede Gruppe der Port-Ausgabewarteschlangen 18 dazu
nutzen, die Datenpakete in geeigneter Weise zu multiplexen. Die Aufgabe
dieses Statusberichts ist gewissermaßen der Anzeige eines Paketrückstaus
entgegengesetzt, d. h. er liefert ein Signal für geringe Auslastung bzw. eine
Rückmeldung
zur Lastmaximierung.
-
Das
Rückstausignal
kann im vorliegenden Falle selektiv zu den Eingabepuffern 11 weitergeleitet werden,
das heißt,
das für
einen bestimmten Ausgabeport 30 in den Ausgabewarteschlangen 18 erzeugte
Rückstausignal
wird nur zu den entsprechenden Eingabewarteschlangen 12 in
den Eingabepuffern 11 weitergeleitet. Somit werden alle
anderen Eingabewarteschlangen 12 durch diesen Datenrückstau nicht blockiert
und können
ihre Datenpakete weiterhin an die Ausgabepuffer 35 senden.
-
Da
bei der gemeinsamen Nutzung die Summe der Anzahl der Speicherplätze in allen
Ausgabewarteschlangen 18 in einem Vermittlungsbereich größer als
die Anzahl der Adressen im Ausgabepuffer 35 ist, kann der
Ausgabepuffer 35 vollständig
gefüllt werden,
ohne dass eine Ausgabewarteschlange 18 ihren Schwellenwert
für die
darin gespeicherten Datenpakete erreicht. Daher gibt es für den Ausgabepuffer 35 ebenfalls
einen Schwellenwert für
belegte Adressen, dessen Überschreitung
zum Senden eines Datenrückstausignals
wegen eines vollen Speichers an den Eingabepuffer 11 führt, der
dann das Senden seiner Datenpakete über die Eingabe-Router 13 an
die Ausgabepuffer 35 unterbrechen muss. Sobald die Anzahl
der belegten Adressen den Schwellenwert wieder unterschreitet, kann
der normale Betriebsmodus wieder aufgenommen werden. Ein solcher
Mechanismus, bei dem ein Rückstausignal
erzeugt wird, sobald im Ausgabepuffer 35 kein Platz mehr
frei ist, ist für
jeden Ausgabepuffer 35 vorgesehen. Da im vorliegenden Falle
alle zu demselben Eingabeport 20 gehörenden Ausgabepuffer 35 zu
jedem Zeitpunkt dieselbe Information enthalten, ist der Rückstausignalgenerator 28 des
Ausgabepuffers für jeden
Eingabeport 20 nur einmal vorgesehen. Um die Datenpakete
richtig zu verarbeiten, wird auch für den Ausgabepuffer 35 ein
Mechanismus für
die Flusssteuerung der Datenpakete vorgesehen, der für jeden
Eingabeport 20 durch einen entsprechenden Rückstausignalgenerator 28 des
Ausgabepuffers ausgeführt
wird, um ein von einem der entsprechenden Ausgabepuffer 35 an
seine Eingabesteuerung 25 gehendes Rückstausignal zu erzeugen, welches dem
Eingabepuffer 11 anzeigt, dass der bzw. die Ausgabepuffer 35 nicht
in der Lage sind, weitere ankommende Datenpakete zu puffern, woraufhin
der Eingabepuffer 11 so lange keine weiteren Datenpakete
zum Ausgabepuffer 35 senden kann, bis der durch das Rückstausignal
angezeigte Rückstau
aufgelöst
ist. Das Rückstausignal
wird erzeugt, wenn die Anzahl der im Ausgabepuffer 35 gepufferten
Datenpakete einen bestimmten Schwellenwert überschreitet. Dieser Schwellenwert
wird kleiner als die tatsächliche
Größe des Ausgabepuffers 35 gewählt, damit dieser
noch alle Datenpakete puffern kann, die während der Zeit gesendet wurden,
die das Rückstausignal
zur Anzeige des Rückstaus
im Eingabepuffer 11 benötigt.
-
Durch
diese Anordnung ist es möglich,
dass alle Eingabepuffer 11 ihre Datenpakete unabhängig voneinander über ihre
Eingabe-Router 13 senden können, solange die Ausgabewarteschlange 18 für dieses
Datenpaket und die Ausgabepuffer 35 noch ausreichend Speicherplatz
bereithalten, d. h. solange noch kein Rückstausignal erzeugt worden
ist.
-
Für jeden
Vermittlungsbereich ist im vorliegenden Beispiel eine Eingabewarteschlange 24 der Vermittlung
vorgesehen, die zur Pufferung von Datenpaketen im Falle eines Rückstaus
dient. Auf diese Weise können
die vom Eingabepuffer 11 an den Vermittlungsbereichen ankommenden
Datenpakete als Einzelexemplar gepuffert werden, anstatt in verschiedenen
Ausgabepuffern 35 mehrfach gespeichert zu werden.
-
DARSTELLUNGSWEISE
-
Zur
Verdeutlichung sind in 1 nicht alle Elemente der Vermittlungseinheit
dargestellt, sondern durch punktierte Linien und Verweise angedeutet.
Die Vermittlungsbereiche sind in 1 nummeriert
und durch gestrichelte Linien gekennzeichnet. Die Vermittlungsbereiche
für den
ersten Eingabeport 20 tragen die Indizes S0101 bis S0132,
da N hier gleich 32 ist. Für
den zweiten Eingabeport 20 tragen die Vermittlungsbereiche
die Indizes S0201 bis S0232. Für
den letzten Eingabeport 20 sind die Vermittlungsbereiche
durch die Indizes S3201 bis S3232 gekennzeichnet. Folglich gibt
es N*N Vermittlungsbereiche.
-
Jeder
Adressmanager 16 liefert seine Adresse an die Eingabe-Router 13 aller
zu demselben Eingabeport 20 gehörenden Vermittlungsbereiche,
z. B. für
den ersten Eingabeport 20 an die Eingabe-Router 13 der
Vermittlungsbereiche S0101, S0102, ... bis S0132. Die OQT 26 empfängt ihren
Eingabewert von den Ausgabewarteschlangen 18 aller Vermittlungsbereiche,
d. h. S0101 OQ, S0201 SQ, ... bis S3201 OQ, da die Ausgabewarteschlangen 18 für jeden Ausgabeport 20 hier
im entsprechenden ersten Vermittlungsbereich Sxx01 angeordnet sind.
Die Ausgabewarteschlangen 18 sind mit dem entsprechenden Arbiter 23 ihres
entsprechenden Ausgabeports 30 verbunden, z. B. führt die
32. Ausgabewarteschlange 18 OQ32 jedes Satzes von Ausgabewarteschlangen 18 zu
dem zum 32. Ausgabeport 30 OP32 gehörenden 32. Arbiter 23 ARB32.
Die zweite Ausgabewarteschlange 18 OQ2 jeder Gruppe von
Ausgabewarteschlangen 18 führt zu dem zum zweiten Ausgabeport 30 OP2
gehörenden
zweiten Arbiter 23 ARB2. Die Zahlen in 1 an
den Arbitern 23 und den Datenübertragungsleitungen 50 geben
ihre Stellung im Zahlenbereich von 1 bis N an. Die Zellenselektoren 14 aller
Vermittlungsbereiche sind entsprechend ihrer Nummer mit dem entsprechenden
Multiplexer 22 verbunden, z. B. sind die ersten Zellenselektoren 14 CS, die
sich in den Vermittlungsbereichen S0101, S0201, ... bis S3201 befinden,
mit dem ersten Multiplexer 22 am ersten Ausgabeport 30 OP1
verbunden.
-
ZWEITE AUSFÜHRUNGSART
-
2 zeigt
eine zweite Ausführungsart.
Diese unterscheidet sich durch die folgenden Merkmale von der Ausführungsart
in 1.
-
Bei
der zweiten Ausführungsart
weist jeder Vermittlungsbereich seine eigene Gruppe von Ausgabewarteschlangen 18 zusammen
mit einem entsprechenden Ausgabewarteschlangen-Router 17 und
einem Adressmanager 16 auf. Dadurch kann in dessen Adressspeicher
jeder Ausgabepuffer 35 unabhängig verwaltet werden. Die
Adressverwaltung erfolgt dabei wie oben erläutert, wobei jedoch jedes in
einem der Ausgabepuffer 35 desselben Eingabeports 20 gespeicherte
Exemplar des Datenpakets seine eigene Adresse erhält. Dies
hat den Vorteil, dass bei einer ungleichmäßigen Zielverteilung ein besserer
Datendurchsatz und eine bessere Nutzung der Ausgabepuffer erreicht
werden kann. Ein typisches Beispiel einer solchen Ungleichmäßigkeit
stellt die Übertragung
im Blockbetrieb dar, d. h., wenn eine Reihe von Datenpaketen mit
demselben Ziel übertragen
wird. In diesem Falle kann es dazu kommen, dass der dem ersten Ausgabeport 30 zugewiesene erste
Ausgabepuffer 35 ausschließlich durch Datenpakete belegt
ist, die zu diesem ersten Ausgabeport 30 übertragen
werden sollen. Im Falle eines einzigen Adressspeichers wie bei der
ersten Ausführungsart würden an
demselben Eingabeport 20 die Ausgabepuffer 35 für die anderen
N-1 Ausgabeports 30 ebenfalls mit diesen Datenpaketen gefüllt oder
zumindest nicht verwendbar sein, da die Adressen bereits verbraucht
sind, ohne dass diese anderen Ausgabeports 30 wirklich
als Ziele für
diese Datenpakete in Frage kommen. Durch diesen erweiterten Adressspeicher
könnten
jedoch die anderen Ausgabeports 30 immer noch mit den an
sie gerichteten Datenpaketen versorgt werden.
-
Für jeden
Ausgabepuffer 35 gibt es nur eine Ausgabewarteschlange 18,
wobei kein Ausgabewarteschlangen-Router 17 benötigt wird.
Bei der vorliegenden Ausführungsart
empfängt
der Arbiter 23 seine Eingabewerte ebenfalls von allen Gruppen
von Ausgabewarteschlangen 18 und sammelt die Ausgabewerte
dieser Ausgabewarteschlangen 18, in denen die an denselben
Ausgabeport 30 gerichteten Datenpakete gespeichert sind.
Der erste Arbiter ARB1 sammelt somit die Ausgabewerte aller ersten
Ausgabewarteschlangen OQ1. Das ergibt für jeden Arbiter 23 eine
Gesamtzahl von N Eingabewerten.
-
UMGEHUNG
-
3 zeigt
eine Einzelheit der Vermittlungsanordnung, in der eine Umgehung 27 angeordnet
ist. Die Umgehung 27 ist ein nach der Eingabewarteschlange 24 der
Vermittlung am Eingabeport 20 angeordneter Schalter. Diese
Umgehung ermöglicht das
Umschalten des Pfades eines Datenpakets, das vom ursprünglichen
Pfad in Richtung des Eingabe-Routers 13 ankommt, auf einen
abgekürzten
Pfad in Richtung des entsprechenden Multiplexers 22. Die Umgehung 27 wird
durch einen Datenstaudetektor 31 gesteuert, der einen Eingabewert
vom Multiplexer 22 empfängt.
Der Multiplexer teilt dem Datenstaudetektor 31 mit, ob
er zum Empfangen eines Datenpakets bereit ist. Das ist normalerweise
der Fall, wenn der entsprechende Arbiter 23 selbst dem
Multiplexer 22 mitteilt, dass er zum Empfangen einer Adresse von
der Ausgabewarteschlange 18 des entsprechenden Eingabeports 20 bereit
ist. In diesem Fall wird nicht eine Adresse in die Ausgabewarteschlange 18 eingetragen,
das Datenpaket unter dieser Adresse im Ausgabepuffer 35 gespeichert
und das Datenpaket über
den Arbiter 23 und den Multiplexer 22 von dort
gelesen, sondern die Umgehung 27 so gewählt, dass das Datenpaket direkt
zum Multiplexer 22 gelangt. Dies führt zu einer schnelleren Verarbeitung des
Datenpakets, verringert die Latenzzeit und das Risiko des Rückstaus.
Eine solche Umgehung 27 kann für jeden Vermittlungsbereich
eingerichtet werden.
-
DRITTE AUSFÜHRUNGSART
-
4 zeigt
eine weitere Ausführungsart
der Erfindung. Hierbei sind die Eingänge und Ausgänge paarweise
angeordnet. Der erste Eingabeport 20 mit der Bezeichnung „1" und der zweite Eingabeport 20 mit
der Bezeichnung „2" sind gemeinsam einem
bestimmten Vermittlungsbereich zugewiesen. Darunter ist zu verstehen,
dass die Eingabe-Router 13 und der Ausgabewarteschlangen-Router 17 dieses
Vermittlungsbereichs ihre Eingabewerte von diesen beiden Eingabeports 20 empfangen.
Die Eingabe-Router 13 sind deshalb jeweils als Repowering
Tree mit zwei Eingängen
ausgelegt. Der entsprechende Adressmanager 16 verarbeitet
zu jedem Zeitpunkt zwei Adressen, für jeden Eingabeport 20 eine
Adresse. Die Zellenselektoren 14 an der Ausgangsseite des Vermittlungsbereichs
sind so ausgelegt, dass sie ihre Ausgabewerte an jeden der Multiplexer
des ersten Ausgabeports OP1 und des zweiten Ausgabeports OP2 liefern.
Der zweite Ausgabepuffer 35 dieses Vermittlungsbereichs
ist somit über
seinen Zellenselektor 14 mit dem dritten Ausgabeport OP3
und dem vierten Ausgabeport OP4 verbunden. Die übrigen Ausgabepuffer 35 dieses
Vermittlungsbereichs sind entsprechend aufgebaut. Die Arbiter 23 für die entsprechende
Gruppe von Ausgabewarteschlangen 18 sind mit dem Multiplexer 22 des
ersten Ausgabeports OP1 bzw. mit dem Multiplexer 22 des
zweiten Ausgabeports OP2 verbunden. Somit verfügt jeder Ausgabeport 30 über seinen
eigenen Arbiter 23, der die Ausgabewerte der diesem Ausgabeport 30 entsprechenden
Ausgabewarteschlangen 18 sammelt und als Eingabewert an
den entsprechenden Multiplexer 22 weiterleitet. Diese Zusammenfassung
von Ports 20, 30 hat zwar den Vorteil, dass weniger
Speicherplatz verbraucht wird, benötigt aber eine umfangreichere
Schaltlogik zur Verarbeitung der in Gruppen zusammengefassten Ports
desselben Vermittlungsbereichs. Durch diese Maßnahme kann ein Optimum zwischen
der Schaltungskomplexität,
der damit verbundenen Leitungskomplexität, den Entwicklungskosten und
möglichen
Latenzeffekten sowie der Vervielfachung von Ressourcen, insbesondere
des Speichervolumens, erreicht werden.
-
Während diese
Ausführungsart
mit einer Kombination von zwei Eingabeports 20 bzw. zwei Ausgabeports 30 beschrieben
wurde, die gleichzeitig einen Vermittlungsbereich nutzen, kann unter
Verwendung dieses Prinzips eine beliebige Anzahl von Eingabeports 20/Ausgabeports 30 zu
Gruppen zusammengefasst werden. Dadurch lässt sich beispielsweise eine
Vermittlungseinheit mit einer Anzahl von n gleich 32 Eingabeports 20 so
aufbauen, dass sie 4 Vermittlungsbereiche mit je acht Eingabeports 20 oder 8 Vermittlungsbereiche
mit je vier Eingabeports 20 enthält. Bei Bedarf können die
Gruppen auch ungleichmäßig gewählt werden.
-
Bei
der vorliegenden Ausführungsart
sind die Eingabeports paarweise gruppiert, wobei die Gruppen von
Eingabeports 20 jeweils zwei Eingabeports 20 umfassen.
Bei der vorliegenden Ausführungsart mit
n = 32 gibt es somit 16 Gruppen von Eingabeports 20. Dasselbe
trifft auch auf die Ausgabeports 30 zu, die ebenfalls paarweise
zusammengefasst und somit in 16 Gruppen von Ausgabeports 30 aufgeteilt
werden. Zu jeder Gruppe von Eingabeports 20 gehört somit
eine Gruppe von Ausgabepuffern 35, wobei diese Gruppe von
Ausgabepuffern 35 für
jede Gruppe von Ausgabeports 30 einen Ausgabepuffer 35 umfasst.
In diesen Ausgabepuffern 35 werden mindestens die Nutzdaten
jedes Datenpakets gespeichert, das an den zur entsprechenden Gruppe
von Eingabeports 20 gehörenden
Eingabeports 20 angekommen ist, also unter einer Adresse
in mindestens denjenigen Ausgabepuffern 35, zu deren Ausgabeports 30 das Datenpaket
geleitet wird. Diese Ausgabepuffer sind Teil der Gruppe von Ausgabepuffern 35,
die zur oben erwähnten
Gruppe von Eingabeports 20 gehört.
-
Bei
den anderen oben beschriebenen Ausführungsarten weisen die Gruppen
von Eingabeports 20 die Mindestgröße auf, das heißt, sie
umfassen jeweils nur einen Eingabeport 20. Dasselbe trifft
auf die Gruppen von Ausgabeports 30 zu, die jeweils nur
einen solchen Ausgabeport 30 umfassen.
-
ERWEITERBARKEIT
-
Die
im vorliegenden Dokument beschriebene Vermittlungsanordnung kann
mit einer der bekannten Erweiterungsmethoden skaliert werden, wie sie
z. B. von der PRIZMA-Architektur her bekannt sind, die im Kapitel
der zugrunde liegenden Technik erwähnt wurde. Dabei kann sich
die Skalierung auf die Geschwindigkeitserhöhung, die Porterweiterung, die
Leistungsverbesserung, die Speichererweiterung, die sich im vorliegenden
Falle auf die Verfügbarkeit
eines größeren Speichervolumens
des Ausgabepuffers bezieht, sowie auf die Parallelschaltung von
Leitungen und das Master-Slave-Prinzip beziehen und schließlich auch
auf eine Kombination dieser Varianten.
-
Die
Vermittlungsanordnung kann natürlich auch
so modifiziert werden, dass die Anzahl ihrer Eingabeports 20 und
Ausgabeports 30 erhöht
wird. Die Anzahl der Eingabeports 20 und der Ausgabeports 30 braucht
nicht identisch zu sein.
-
Die
Leistungsfähigkeit
der Vermittlungsanordnung kann auf unterschiedliche Weise erhöht werden.
-
PORTERWEITERUNG
-
Zur
Erhöhung
der Anzahl der Eingabe- und Ausgabeports kann die Vermittlungsanordnung mehr-
oder einstufig ausgeführt
werden. Bei der mehrstufigen Anordnung nimmt die Anzahl der benötigten Vermittlungsanordnungen
langsamer zu als bei einer vergleichbaren einstufigen Anordnung,
d. h. mit zunehmender Portanzahl benötigt eine mehrstufige Anordnung
weniger Vermittlungsanordnungen als eine einstufige Anordnung.
-
Die
Leistungsfähigkeit
einer mehrstufigen Anordnung ist jedoch geringer aufgrund der höheren Latenz
und wegen der Möglichkeit
des Rückstaus
infolge einer kompletten Auslastung einer Ausgabewarteschlange durch
eine Verbindung, wodurch die Verarbeitung von Datenpaketen mit anderen
Zielen verhindert wird, oder infolge einer kompletten Auslastung
des Paketspeichers, wodurch alle Eingabeports der Vermittlungsanordnung
gesperrt werden und zur vorangehenden Stufe gewechselt wird. Diese
geringere Leistungsfähigkeit
kann bis zu einem gewissen Umfang durch eine höhere Geschwindigkeit ausgeglichen
werden. Das bedeutet, dass die Vermittlungsanordnung mit höherer Geschwindigkeit
als ihre Umgebung arbeitet. Dann wird im Anschluss an die Vermittlungsanordnung
ein Ausgabepuffer angeordnet, um in einer Warteschlange die schneller
ankommenden Datenpakete zu speichern, die von der letzten Stufe
kommen und mit einer geringeren Geschwindigkeit zur folgenden Hardwareumgebung
weitergeleitet werden.
-
SPEICHERERWEITERUNG
-
Eine
weitere Möglichkeit
besteht in der Vergrößerung des
internen Speichers der Vermittlung, d. h. des Ausgabepuffervolumens,
damit diese komplette Auslastung weniger wahrscheinlich wird. Ein
solcher größerer Speicher
ist jedoch äußerst teuer
und stößt zum Teil
auch an physische Grenzen. Die Vergrößerung des Vermittlungsspeichers
mittels des Speichererweiterungsmodus umgeht zwar die physischen
Grenzen, ist aber trotzdem auch teuer. Wenn bei einer mehrstufigen
Anordnung eine nachfolgende Vermittlungsanordnung belegt ist (Ausgabespeicher voll,
d. h. keine Adresse frei, oder Ausgabewarteschlange voll), kann
für alle
Eingabeports 20 ein Rückstausignal
erzeugt und dieses wiederum an alle vorangehenden Vermittlungsanordnungen übertragen
werden. Beim Vorliegen voller Ausgabewarteschlangen 18 kann
das Rückstausignal
nur diejenigen Datenpakete selektiv blockieren, die zur vollen Ausgabewarteschlange 18 geleitet
werden sollen. Beim Vorliegen eines vollen Ausgabepuffers 35 werden
alle Eingabeports 20 gesperrt. Das Rückstausignal sperrt die vorangehende
Vermittlungsanordnung insofern, als diese Vermittlungsanordnung
keine Zellen mehr senden kann.
-
Der
beschriebene Mechanismus kann auch auf andere Bereiche angewendet
werden, bei denen eine Anzahl von Datengeneratoren, analog zu den hier
beschriebenen Eingabeports, Daten erzeugen, die zu einer Anzahl
von Datennutzern, analog zu den beschriebenen Ausgabeports, in einer
Umgebung weitergeleitet werden sollen, in der die Komplexität der Leitungen
und der Speicherverwaltung ein größeres Problem darstellt als
das Speichervolumen. Beispielsweise kann ein Computerprozessor-
oder Multiprozessorsystem eine Anzahl von Verarbeitungseinheiten
enthalten, welche Datenpakete erzeugen, die zwischenzeitlich gepuffert
und gespeichert werden, bis sie durch andere Verarbeitungseinheiten
genutzt werden können.
In einer solchen Umgebung entsprechen die Verarbeitungseinheiten
zur Erzeugung der Daten den Eingabeports, die Verarbeitungseinheiten
zur Nutzung der Daten den Ausgabeports und die Register, welche
die Daten zwischen dem Zeitpunkt ihrer Erzeugung und dem Zeitpunkt
ihrer Nutzung zwischenspeichern, den Ausgabepuffern.
-
Die
beschriebenen Ausführungsarten
können
ganz oder teilweise miteinander kombiniert werden.