DE60214341T2 - Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern - Google Patents

Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern Download PDF

Info

Publication number
DE60214341T2
DE60214341T2 DE60214341T DE60214341T DE60214341T2 DE 60214341 T2 DE60214341 T2 DE 60214341T2 DE 60214341 T DE60214341 T DE 60214341T DE 60214341 T DE60214341 T DE 60214341T DE 60214341 T2 DE60214341 T2 DE 60214341T2
Authority
DE
Germany
Prior art keywords
output
input
port
queues
data packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60214341T
Other languages
English (en)
Other versions
DE60214341D1 (de
Inventor
F. Alan Poughkeepsie BENNER
Antonius Engbersen
A. Gottfried GOLDRIAN
P. Ronald LUIJTEN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60214341D1 publication Critical patent/DE60214341D1/de
Publication of DE60214341T2 publication Critical patent/DE60214341T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/112Switch control, e.g. arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • H04L2012/5635Backpressure, e.g. for ABR
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Metal-Oxide And Bipolar Metal-Oxide Semiconductor Integrated Circuits (AREA)

Description

  • 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.

Claims (29)

  1. Vermittlungsanordnung zum Transportieren von Datenpaketen, die mindestens Nutzdaten umfassen, wobei die Datenpakete über einen oder mehrere Eingabeports (20) einer Vermittlungseinheit (10) auf einen oder mehrere Ausgabeports (30) der Vermittlungseinheit zusteuern, wobei die Vermittlungseinheit (10) in der Lage ist, die ankommenden Datenpakete gemäß Zielinformationen der Datenpakete zu mindestens einem zugeordneten Port der Ausgabeports (30) weiterzuleiten, wobei die Vermittlungsanordnung Folgendes umfasst: – für jede Gruppe der Eingabeports (20) in der Vermittlungseinheit (10), wobei eine solche Gruppe mindestens einen Eingabeport (20) umfasst, eine Gruppe von Ausgabepuffern (35), die für jede Gruppe der Ausgabeports (30), wobei eine solche Gruppe mindestens einen Ausgabeport (30) umfasst, einen Ausgabepuffer (35) umfasst zum Speichern zumindest der Nutzdaten jedes an den zu der Gruppe von Eingabeports (20) gehörenden Eingabeports (20) ankommenden Datenpakets unter einer Adresse in zumindest denjenigen zu derselben Gruppe von Ausgabepuffern (35) gehörenden Ausgabepuffern (35), die zu den zugeordneten Ausgabeports (30) gehören, – für mindestens einen Ausgabepuffer (35) eine Gruppe von Ausgabewarteschlangen (18), die für jeden Ausgabeport (30) eine Ausgabewarteschlange (18) umfasst, um darin, nach den Zielinformationen der Datenpakete sortiert, die Adresse der jeweils im Ausgabepuffer (35) gespeicherten Nutzdaten zu speichern, – für die zu demselben Ausgabeport (30) gehörenden Ausgabewarteschlangen (18) einen Arbiter (23) zum Steuern einer Lesereihenfolge der gespeicherten Adressen, – für die zu derselben Gruppe von Ausgabeports (30) gehörenden Ausgabepuffer (35) und für jeden Ausgabeport (30) aus der Gruppe von Ausgabeports (30) einen Multiplexer (22) zum Multiplexen der gespeicherten Nutzdaten von den Ausgabepuffern (35) zu den Ausgabeports (30) entsprechend der Lesereihenfolge.
  2. Vermittlungsanordnung nach Anspruch 1, welche ferner an jedem Eingabeport (20) eine Vermittlungs-Eingabewarteschlange (24) umfasst, um in diese die an diesem Eingabeport (20) ankommenden Datenpakete zu stellen.
  3. Vermittlungsanordnung nach Anspruch 1 oder 2, welche ferner für jede Gruppe von Ausgabewarteschlangen (18) einen Adressmanager (16) zum Verwalten der Nutzung der Adressen des Ausgabepuffers (35) und einen Ausgabewarteschlangen-Router (17) zum Eingeben der Adressen, unter denen die Datenpakete im Ausgabepuffer (35) gespeichert sind, in die Ausgabewarteschlangen (18) umfasst.
  4. Vermittlungsanordnung nach einem der Ansprüche 1 bis 3, welche ferner für jeden Ausgabepuffer (35) eine Umgehung (27) umfasst, um die Nutzdaten vom Eingabeport (20) direkt zum Multiplexer (22) des entsprechenden Ausgabeports (30) zu leiten.
  5. Vermittlungsanordnung nach Anspruch 4, welche ferner für jeden der Ausgabepuffer (35) einen Datenstaudetektor (31) umfasst, um eines der Datenpakete über die entsprechende Umgehung (27) zu leiten, wenn der entsprechende Multiplexer (22) in der Lage ist, das Datenpaket zu seinem Ausgabeport (30) zu multiplexen.
  6. Vermittlungsanordnung nach einem der Ansprüche 1 bis 5, welche ferner für jeden der Ausgabepuffer (35) einen Eingabe-Router (13) zum Einstellen der Datenpakete unter der Adresse in die Ausgabepuffer (35) umfasst.
  7. Vermittlungsanordnung nach einem der Ansprüche 1 bis 6, bei welcher die Ausgabewarteschlangen (18) für die Adressen insgesamt mehr Speicherplätze in den Warteschlangen bereitstellen als die entsprechenden Ausgabepuffer (35) Adressen haben.
  8. Vermittlungsanordnung nach einem der Ansprüche 1 bis 4, welche ferner an jedem Eingabeport (20) einen Eingabepuffer (11) mit mindestens genauso vielen Eingabewarteschlangen (12) umfasst wie die Vermittlungsanordnung Ausgabeports (30) hat, wobei die Eingabewarteschlangen (12) dazu dienen, die ankommenden Datenpakete entsprechend dem mindestens einen zugeordneten Ausgabeport (30) zu sortieren.
  9. Vermittlungsanordnung nach Anspruch 8, welche ferner für jeden Eingabeport (20) eine Eingabesteuerung (25) für das Steuern der Reihenfolge des Multiplexens der Datenpakete von den Eingabewarteschlangen (12) zur Vermittlungseinheit (10) umfasst.
  10. Vermittlungsanordnung nach Anspruch 8 oder 9, welche ferner einen Schwellenwertkomparator (26) der Ausgabewarteschlange umfasst, um den Eingabepuffern (11) ein Signal zu senden, wenn ein Schwellenwert der belegten Speicherplätze in der Gesamtheit aller zu einem gemeinsamen Ausgabeport (30) gehörenden Ausgabewarteschlangen (18) überschritten wurde.
  11. Vermittlungsanordnung nach Anspruch 10, bei welcher die Eingabepuffer (11) derart gestaltet sind, dass nach einem Signal vom Schwellenwertkomparator (26) der Ausgabewarteschlange, dass der Schwellenwert der belegten Speicherplätze in der Gesamtheit aller zu demselben Ausgabeport (30) gehörenden Ausgabewarteschlangen (18) überschritten wurde, nur die diesem Ausgabeport (30) entsprechende Eingabewarteschlange (12) daran gehindert wird, ihre Datenpakete zu diesem Ausgabeport (30) zu liefern.
  12. Vermittlungsanordnung nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass für jeden Ausgabepuffer (35) ein Rückstausignalgenerator (28) des Ausgabepuffers vorgesehen ist, um dem dem Ausgabepuffer (35) entsprechenden Eingabepuffer (11) zu signalisieren, dass ein Schwellenwert der belegten Adressen im Ausgabepuffer (35) überschritten wurde.
  13. Vermittlungsanordnung nach einem der Ansprüche 8 bis 12, dadurch gekennzeichnet, dass die Adresse eines Multicast-Datenpakets als Eintrag in jede der Ausgabewarteschlangen (18) für diejenigen Ausgabeports (30) eingegeben werden kann, welche dieses Multicast-Datenpaket erreichen soll, und dass die Adresse zur Nutzung für ein anderes Datenpaket durch den Adressmanager (16) erst dann freigegeben werden kann, wenn alle Einträge des Multicast-Datenpakets zur Lieferung des Multicast-Datenpakets an die dem Datenpaket zugeordneten Ausgabeports (30) verwendet worden sind.
  14. Vermittlungsanordnung nach einem der Ansprüche 8 bis 13, dadurch gekennzeichnet, dass bei Datenpaketen mit unterschiedlichen Verarbeitungsprioritäten für jede Prioritätsklasse und für jeden Ausgabeport (30) im Eingabepuffer (11) eine separate Eingabewarteschlange (12) bereitgestellt wird.
  15. Vermittlungsanordnung nach einem der Ansprüche 8 bis 14, welche einen Demultiplexer (19) zum Erstellen eines Eintrags für jedes der ankommenden Datenpakete in denjenigen der Eingabewarteschlangen (12) umfasst, die in den Zielinformationen des entsprechenden Datenpakets angegeben sind, wobei jede der Eingabesteuerungen (25) so beschaffen ist, dass sie die gleichzeitige Übertragung derjenigen Datenpakete gestattet, deren Einträge sich in verschiedenen Eingabewarteschlangen (12) befinden und die identische Nutzdaten enthalten.
  16. Vermittlungsanordnung nach Anspruch 15, dadurch gekennzeichnet, dass jeder der Einträge zumindest die Nutzdaten des entsprechenden Datenpakets oder einen Zeiger auf eine Speicherzelle umfasst, in welcher zumindest die Nutzdaten des entsprechenden Datenpakets gespeichert sind, wobei sich die Speicherzelle vorzugsweise in einem gemeinsamen Eingabepuffer befindet.
  17. Vermittlungsanordnung nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass der Demultiplexer (19) für den Fall, dass es sich bei dem Datenpaket um ein Multicast-Datenpaket handelt, so ausgelegt ist, dass er mehrere Einträge in den Eingabewarteschlangen (12) und nur einen Eintrag für die Nutzdaten des Datenpakets in der Speicherzelle erstellt.
  18. Verfahren zur Vermittlung von Datenpaketen, die Nutzdaten umfassen und über einen oder mehrere Eingabeports (20) einer Vermittlungseinheit (10) auf einen oder mehrere zugeordnete Ausgabeports (30) der Vermittlungseinheit zusteuern, wobei das Verfahren die folgenden Schritte umfasst: – Speichern zumindest der Nutzdaten jedes Datenpakets, das an diesen zu einer Gruppe der Eingabeports (20) gehörenden Eingabeports (20) ankommt, wobei eine solche Gruppe mindestens einen Eingabeport (20) umfasst, unter einer Adresse in mindestens denjenigen zu derselben Gruppe von Ausgabepuffern (35) gehörenden Ausgabepuffern (35), die zu den zugeordneten Ausgabeports (30) gehören, wobei eine solche Gruppe von Ausgabepuffern (35) für jede Gruppe der Ausgabeports (30) einen Ausgabepuffer (35) umfasst und eine solche Gruppe mindestens einen Ausgabeport (30) umfasst, – Speichern für mindestens einen der Ausgabepuffer (35) zumindest der Adresse jeder der im Ausgabepuffer (35) gespeicherten Nutzdaten, sortiert nach den Zielinformationen der Datenpakete, in den Ausgabewarteschlangen (18), die eine Gruppe bilden, welche für jeden Ausgabeport (30) eine Ausgabewarteschlange (18) umfasst, – Ermitteln einer Lesereihenfolge der gespeicherten Adressen für alle zu demselben Ausgabeport (30) gehörenden Ausgabewarteschlangen (18), – Multiplexen der gespeicherten Nutzdaten von den Ausgabepuffern (35) zum Ausgabeport (30) entsprechend der Lesereihenfolge, für die zu demselben Ausgabeport (30) gehörenden Ausgabepuffer (35).
  19. Vermittlungsverfahren nach Anspruch 18, welches ferner einen Schritt zum Einreihen der am Eingabeport (20) ankommenden Datenpakete in eine Warteschlange an jedem Eingabeport (20) umfasst.
  20. Vermittlungsverfahren nach Anspruch 18 oder 19, welches ferner einen Schritt zum Verhindern der Speicherung der Nutzdaten in denjenigen Ausgabepuffern umfasst, die nicht den zugeordneten Ausgabeports (35) entsprechen.
  21. Vermittlungsverfahren nach einem der Ansprüche 18 bis 20, welches ferner einen Schritt zum Umleiten der Nutzdaten vom Eingabeport (20) direkt zu dessen Multiplexer (22) umfasst.
  22. Vermittlungsverfahren nach einem der Ansprüche 18 bis 21, welches ferner einen Schritt zum Sortieren der an jedem Eingabeport (20) ankommenden Datenpakete entsprechend ihrem zugeordneten mindestens einen Ausgabeport (30) in Eingabewarteschlangen eines Eingabepuffers (11) umfasst, der mindestens genauso viele Eingabewarteschlangen (12) aufweist wie die Vermittlungsanordnung Ausgabeports (30) hat.
  23. Vermittlungsverfahren nach Anspruch 22, welches ferner einen Schritt zum Steuern der Reihenfolge für das Multiplexen der Datenpakete von den Eingabewarteschlangen (12) zur Vermittlungseinheit (10) umfasst.
  24. Vermittlungsverfahren nach Anspruch 22 oder 23, welches ferner einen Schritt zum Senden eines Signals an die Eingabepuffer (11) umfasst, wenn ein Schwellenwert der belegten Speicherplätze in der Gesamtheit aller zu einem gemeinsamen Ausgabeport (30) gehörenden Ausgabewarteschlangen (18) überschritten wurde.
  25. Vermittlungsverfahren nach Anspruch 24, dadurch gekennzeichnet, dass nach einem Signal, dass der Schwellenwert der belegten Speicherplätze in der Gesamtheit aller zu demselben Ausgabeport (30) gehörenden Ausgabewarteschlangen (18) überschritten wurde, nur die demselben Ausgabeport (30) entsprechende Eingabewarteschlange (12) daran gehindert wird, ihre Datenpakete zu demselben Ausgabeport (30) zu schicken.
  26. Vermittlungsverfahren nach einem der Ansprüche 18 bis 25, welches ferner einen Schritt zum Senden eines Signals an den dem Ausgabepuffer (35) entsprechenden Eingabepuffer (11) umfasst, dass ein Schwellenwert der belegten Adressen im Ausgabepuffer (35) überschritten wurde.
  27. Vermittlungsverfahren nach einem der Ansprüche 18 bis 26, welches bei einem Multicast-Datenpaket ferner einen Schritt zum Eingeben der Adresse des Multicast-Datenpakets als Eintrag in jede der Ausgabewarteschlangen (18) für diejenigen Ausgabeports (30) umfasst, welche dieses Multicast-Datenpaket erreichen soll, wobei diese Adresse durch den Adressmanager (16) erst dann zur Nutzung für ein anderes Datenpaket freigegeben wird, wenn alle Einträge des Multicast-Datenpakets erfolgreich zum Senden des Multicast-Datenpakets an seine zugeordneten Ausgabeports (30) verwendet worden sind.
  28. Vermittlungsverfahren nach einem der Ansprüche 18 bis 27, welches ferner für Datenpakete mit unterschiedlichen Verarbeitungsprioritäten einen Schritt zum Bereitstellen einer separaten Eingabewarteschlange (12) im Eingabepuffer (11) für jede Prioritätsklasse und für jeden Ausgabeport (30) umfasst.
  29. Vermittlungsverfahren nach einem der Ansprüche 18 bis 28, welches ferner einen Schritt zum Erstellen eines Eintrags für jedes der ankommenden Datenpakete in diejenigen Eingabewarteschlangen (12) umfasst, die in den Zielinformationen der entsprechenden Datenpakete angegeben sind, wobei jede Eingabesteuerung (25) die gleichzeitige Übertragung derjenigen Datenpakete gestattet, deren Einträge sich in verschiedenen Eingabewarteschlangen (12) befinden und deren Nutzdaten identisch sind.
DE60214341T 2001-02-28 2002-02-25 Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern Expired - Lifetime DE60214341T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01104850 2001-02-28
EP01104850 2001-02-28
PCT/IB2002/000548 WO2002069668A1 (en) 2001-02-28 2002-02-25 Switching arrangement and method with separated output buffers

Publications (2)

Publication Number Publication Date
DE60214341D1 DE60214341D1 (de) 2006-10-12
DE60214341T2 true DE60214341T2 (de) 2007-09-13

Family

ID=8176624

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60214341T Expired - Lifetime DE60214341T2 (de) 2001-02-28 2002-02-25 Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern

Country Status (7)

Country Link
US (2) US7848341B2 (de)
EP (1) EP1364552B1 (de)
JP (1) JP4080888B2 (de)
KR (1) KR100588947B1 (de)
AT (1) ATE338439T1 (de)
DE (1) DE60214341T2 (de)
WO (1) WO2002069668A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7254139B2 (en) * 2000-12-28 2007-08-07 International Business Machines Corporation Data transmission system with multi-memory packet switch
US7187687B1 (en) * 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7039736B2 (en) * 2003-01-15 2006-05-02 Hewlett-Packard Development Company, L.P. Systems and methods for accessing bus-mastered system resources
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7295519B2 (en) * 2003-06-20 2007-11-13 Motorola, Inc. Method of quality of service based flow control within a distributed switch fabric network
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US7355975B2 (en) * 2004-04-30 2008-04-08 International Business Machines Corporation Method and apparatus for group communication with end-to-end reliability
US20060013135A1 (en) * 2004-06-21 2006-01-19 Schmidt Steven G Flow control in a switch
US8018851B1 (en) * 2004-06-30 2011-09-13 Marvell Israel (Misl) Ltd. Flow control for multiport PHY
US7603035B2 (en) * 2004-09-03 2009-10-13 Fujitsu Limited Method and system for a data centric architecture in an optical network
US7813348B1 (en) 2004-11-03 2010-10-12 Extreme Networks, Inc. Methods, systems, and computer program products for killing prioritized packets using time-to-live values to prevent head-of-line blocking
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
US8072887B1 (en) * 2005-02-07 2011-12-06 Extreme Networks, Inc. Methods, systems, and computer program products for controlling enqueuing of packets in an aggregated queue including a plurality of virtual queues using backpressure messages from downstream queues
US7802028B2 (en) * 2005-05-02 2010-09-21 Broadcom Corporation Total dynamic sharing of a transaction queue
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
JP4841358B2 (ja) * 2006-08-18 2011-12-21 富士通株式会社 リクエスト送信制御装置およびリクエスト送信制御方法
US20080101479A1 (en) * 2006-10-31 2008-05-01 Khorvash Sefidvash Method and system for automatic cat cable configuration
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US8395996B2 (en) 2007-01-11 2013-03-12 Foundry Networks, Llc Techniques for processing incoming failure detection protocol packets
US8345702B2 (en) * 2007-02-07 2013-01-01 Marvell World Trade Ltd. Method and apparatus for flexible interface bypass options in switches
DE102007038338A1 (de) * 2007-08-14 2009-02-19 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur Protokollierung von Kommunikationsverbindungen bei sehr hohen Datenraten
JP2009251652A (ja) * 2008-04-01 2009-10-29 Mitsubishi Electric Corp マルチコアシステム
US7936669B2 (en) * 2008-06-04 2011-05-03 Entropic Communications, Inc. Systems and methods for flow control and quality of service
JP5287975B2 (ja) * 2009-03-09 2013-09-11 富士通株式会社 情報処理装置
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
WO2011039808A1 (ja) * 2009-09-30 2011-04-07 富士通株式会社 データ転送装置、及びデータ転送方法
US8605722B1 (en) 2009-12-10 2013-12-10 Juniper Networks, Inc. Deadlock-resistant fabric tree replication in a network device
JP2012186539A (ja) * 2011-03-03 2012-09-27 Renesas Electronics Corp ルータ装置、ルータ装置の制御方法
US20130028266A1 (en) * 2011-07-29 2013-01-31 Ziegler Michael L Response messages based on pending requests
US9112708B1 (en) * 2012-01-27 2015-08-18 Marvell Israel (M.I.S.L) Ltd. Processing multicast packets in a network device
US9106428B2 (en) * 2012-10-04 2015-08-11 Broadcom Corporation Multicast switching for distributed devices
US8984206B2 (en) 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8902899B2 (en) 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
US9571541B1 (en) 2013-10-03 2017-02-14 Marvell Israel (M.I.S.L.) Ltd. Network device architecture using cache for multicast packets
US9317359B2 (en) * 2013-12-16 2016-04-19 Artesyn Embedded Computing, Inc. Reliable, low latency hardware and software inter-process communication channel for safety critical system
US9832030B2 (en) 2014-01-21 2017-11-28 International Business Machines Corporation Multicast packet routing via crossbar bypass paths
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
US10331569B2 (en) 2016-01-05 2019-06-25 Friday Harbor Llc Packet router buffer management
US9942146B2 (en) * 2016-01-05 2018-04-10 Knuedge Incorporated Router path selection and creation in a single clock cycle
US10367758B2 (en) 2016-09-12 2019-07-30 Marvell World Trade Ltd. Merging read requests in network device architecture
WO2018232773A1 (zh) 2017-06-23 2018-12-27 华为技术有限公司 数据处理方法及装置、交换设备
US11502934B2 (en) * 2018-08-21 2022-11-15 The George Washington Univesity EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture
CA3123315A1 (en) * 2020-06-29 2021-12-29 Lg Household & Health Care Ltd. Adhesive patch to oral cavity having improved stability and usability

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08214008A (ja) 1987-02-06 1996-08-20 Fujitsu Ltd 自己ルーチングスイッチ
DE69031220T2 (de) * 1990-12-20 1998-02-12 Ibm Hochgeschwindigkeitsmultiport-FIFO-Pufferschaltung
US5546391A (en) * 1993-03-04 1996-08-13 International Business Machines Corporation Central shared queue based time multiplexed packet switch with deadlock avoidance
AU675302B2 (en) * 1993-05-20 1997-01-30 Nec Corporation Output-buffer switch for asynchronous transfer mode
JPH0746252A (ja) 1993-08-03 1995-02-14 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ
JPH0779252A (ja) 1993-09-08 1995-03-20 Fujitsu Ltd パケット出力制御方式
JPH08288965A (ja) * 1995-04-18 1996-11-01 Hitachi Ltd スイッチングシステム
EP0748087A1 (de) * 1995-06-09 1996-12-11 International Business Machines Corporation Zugriffsteuerungssystem eines gemeinsamen Pufferspeichers
US5822540A (en) * 1995-07-19 1998-10-13 Fujitsu Network Communications, Inc. Method and apparatus for discarding frames in a communications device
JP2842522B2 (ja) 1995-12-06 1999-01-06 日本電気株式会社 Atmスイッチ及びその制御方法
JP2827998B2 (ja) * 1995-12-13 1998-11-25 日本電気株式会社 Atm交換方法
JP3156752B2 (ja) * 1996-02-09 2001-04-16 日本電気株式会社 Atmスイッチ装置及びその制御方法
DE19617816B4 (de) 1996-05-03 2004-09-09 Siemens Ag Verfahren zum optimierten Übertragen von ATM-Zellen über Verbindungsabschnitte
JP2874713B2 (ja) 1996-08-16 1999-03-24 日本電気株式会社 Atm交換機システムおよびそのトラヒック制御方法
JPH10126419A (ja) 1996-10-23 1998-05-15 Nec Corp Atm交換機システム
JPH1132055A (ja) * 1997-07-14 1999-02-02 Fujitsu Ltd バッファ制御装置及びバッファ制御方法
JP2933904B2 (ja) 1998-01-26 1999-08-16 三菱電機株式会社 共通バッファ形非同期転送モードスイッチ
US6606317B1 (en) * 1999-09-09 2003-08-12 Harris Corporation Dual key controlled content addressable memory for accessing packet switch data buffer for multicasting data packets
CA2337674A1 (en) * 2000-04-20 2001-10-20 International Business Machines Corporation Switching arrangement and method
DE60119866T2 (de) 2000-09-27 2007-05-10 International Business Machines Corp. Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
JP2002111716A (ja) * 2000-10-04 2002-04-12 Nec Corp パケットスイッチ及びそれに用いるマルチキャスト制御方式
JP4489308B2 (ja) 2001-01-05 2010-06-23 富士通株式会社 パケットスイッチ

Also Published As

Publication number Publication date
JP4080888B2 (ja) 2008-04-23
EP1364552A1 (de) 2003-11-26
US7848341B2 (en) 2010-12-07
EP1364552B1 (de) 2006-08-30
US20110149729A1 (en) 2011-06-23
WO2002069668A1 (en) 2002-09-06
US8644327B2 (en) 2014-02-04
ATE338439T1 (de) 2006-09-15
JP2004529541A (ja) 2004-09-24
KR20030080027A (ko) 2003-10-10
US20040196859A1 (en) 2004-10-07
KR100588947B1 (ko) 2006-06-14
DE60214341D1 (de) 2006-10-12

Similar Documents

Publication Publication Date Title
DE60214341T2 (de) Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE69733703T2 (de) Puffer von Mehrfachsendezellen in Vermittlungsnetzen
DE60120807T2 (de) Schaltvorrichtung und Verfahren
DE69726995T2 (de) Mehrfachsende-Leitweglenkung in mehrstufigen Netzen
DE69737361T2 (de) Schnelle vermittlungsvorrichtung
DE69915704T2 (de) Ampic dram
DE69634857T2 (de) Ablaufsteuerung für eine informationspaketvermittlung
DE69637462T2 (de) ATM-Vermittlungsstelle mit Eingangs- und Ausgangsanschlussstellen
DE60036682T2 (de) Maschine zur gewichteten ringförmigen Ablaufsteuerung
DE69908821T2 (de) Datenvermittlungsverfahren und -vorrichtung
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE69937862T2 (de) Bandbreitensteuerung mit zwei Komponenten, zur Anwendung in digitalen Kommunikationssystemen mit mehreren Klassen
DE69834823T2 (de) Paketvermittlungsvorrichtung und -verfahren mit zentraler Speicherarchitektur
EP0276776B1 (de) Digitales Koppelnetz für Leitungs- und Paketvermittlung und Koppelfeldbaustein hierzu
DE10196447B4 (de) Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher
EP0412343B1 (de) Koppelnetz und Koppelnetzmodul für ein ATM-System
DE69917555T2 (de) Vermittlungseinrichtung mit mehrstufiger Warteschlangeschema
DE69333206T2 (de) Paketvermittlungssystem unter Verwendung des Belegstatus der Ausgangspuffer
US6944170B2 (en) Switching arrangement and method
DE60033295T2 (de) Skalierbare vermittlungsschaltung
DE60314205T2 (de) Arbiter für ein Vermittlungssystem mit Eingangspuffer
DE60127366T2 (de) Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
DE19757965A1 (de) Verteiltes Puffersystem für ATM-Schalter

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)