DE60127366T2 - Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher - Google Patents

Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher Download PDF

Info

Publication number
DE60127366T2
DE60127366T2 DE60127366T DE60127366T DE60127366T2 DE 60127366 T2 DE60127366 T2 DE 60127366T2 DE 60127366 T DE60127366 T DE 60127366T DE 60127366 T DE60127366 T DE 60127366T DE 60127366 T2 DE60127366 T2 DE 60127366T2
Authority
DE
Germany
Prior art keywords
cell
frame
output
active
cells
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
DE60127366T
Other languages
English (en)
Other versions
DE60127366D1 (de
Inventor
Michel Colmant
Ferdinand Gramsamer
Cyriel Minkenberg
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
Publication of DE60127366D1 publication Critical patent/DE60127366D1/de
Application granted granted Critical
Publication of DE60127366T2 publication Critical patent/DE60127366T2/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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • 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/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/153ATM switching fabrics having parallel switch planes
    • H04L49/1538Cell slicing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • 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/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • 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/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Switches That Are Operated By Magnetic Or Electric Fields (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren und eine Struktur zur Schaffung einer Routing-Funktion für den Datenverkehr von Einheiten variabler Länge in einer Vermittlungsanlage für Zellen fest vorgegebener Länge in elektronischen Netzen. Viele in solchen Netzen genutzte Datenübertragungsprotokolle und -technologien, zum Beispiel TCP/IP und Ethernet, verwenden als Übertragungseinheiten Datenpakete variabler Länge. Die Knoten, welche diese Netze bilden, enthalten jedoch normalerweise Hochgeschwindigkeits-Zellenvermittlungsanlagen, die nur Dateneinheiten fester Länge unterstützen. Es wäre wünschenswert, in einer solchen Vermittlungseinheit für Zellen fest vorgegebener Länge Dateneinheiten mit variabler Länge zu unterstützen, indem eine verschachtelungsfreie Vermittlung und Übertragung solcher Dateneinheiten ermöglicht wird. Dadurch könnte die Notwendigkeit entfallen, die Pakete wieder neu zusammenzusetzen, und es könnte eine Verbesserung der durchschnittlichen Verzögerungswerte erreicht werden.
  • Außerdem verwenden viele solcher Netze als wichtige Funktionen das so genannte Multicasting (Mehrfachsenden), d. h. die Vervielfachung einer ankommenden Dateneinheit für mehrere Ausgänge, und das Bereithalten des so genannten Quality-of-Service (QoS, Servicequalität), d. h. die Bereitstellung unterschiedlicher Servicequalitäten für die Datenverkehrsklassen. Aus diesem Grund muss heutzutage jede Vermittlungsstruktur die Funktionen Multicasting und QoS unterstützen.
  • EINFÜHRUNG UND STAND DER TECHNIK
  • Eine gängige Implementierung von Hochgeschwindigkeits-Zellenvermittlungsanlagen, wie sie z. B. von W.E. Denzel, A.P.J. Engbersen und I. Iliadis in „A Flexible Shared-Buffer Switch for ATM at Gb/s Rates", veröffentlicht in Computer Networks and ISDN Systems, Bd. 27, Nr. 4, Januar 1995, S. 611 bis 624, beschrieben wird, geht von einem Ansatz mit Ausgabewarteschlange und gemeinsamem Speicher aus. Die Einbeziehung der Funktionen Multicasting, QoS-Unterstützung und Dateneinheiten variabler Länge in einer solchen Architektur kann in vielen Fällen zu Deadlocks führen, was zuerst geklärt werden muss, damit die Vermittlung nicht auf unbestimmte Zeit blockiert wird.
  • Das hier beschriebene Verfahren baut auf Vermittlungsanlagen für Zellen fest vorgegebener Länge auf und unterscheidet sich grundlegend von allen anderen Merkmalen in einer solchen Vermittlungsanlage. Darunter ist zu verstehen, dass es die Leistungsparameter des Systems bezüglich der Latenzzeit und des Datendurchsatzes nicht beeinträchtigt, wenn es als übliche zellenbasierte Vermittlungsanlage eingesetzt wird. Ferner unterscheidet es sich grundsätzlich von der Multicasting- und der QoS-Funktionalität, z. B. bezüglich der Datenverkehrsprioritäten, die in solchen Vermittlungsanlagen geregelt sind.
  • C.B. Stunkel et al. beschreiben eine bereits existierende Architektur in „Implementing Multidestination Worms in Switchbased Parallel Systems: Architectural Alternatives and their Impact", Proceedings of the 24th ACM Annual International Symposium on Computer Architecture (ISCA 1997), Juni 1997, Denver, Colorado, USA. Sie legen verschiedene Wege zur Implementierung so genannter „multidestination worms" (Würmer mit mehreren Zielen) dar, die den hier erörterten Multicast-Rahmen nicht unähnlich sind. Die Autoren bevorzugen eine Hybridlösung aus zentralem Puffer und Crossbar, obwohl der Crossbar eigentlich nur dazu dient, Unicast-Datenverkehr mit geringer Latenzzeit zu vermitteln. Um Deadlocks zu vermeiden, gehen Stunkel et al. von dem Ansatz aus, bereits vorher sicherzustellen, dass ein Rahmen komplett im gemeinsamen Puffer gespeichert werden kann. Die Kopfdaten (Header) des Rahmens dürfen erst in die Vermittlungsanlage gelangen, wenn diese Bedingung erfüllt ist. Das bedeutet nicht, dass zum Zeitpunkt der Berechtigung bereits ausreichend Platz für den gesamten Rahmen vorhanden ist, sondern dass irgendwann Rahmen, die die Vermittlungsanlage verlassen, genügend Platz zur Speicherung des gesamten Rahmens freimachen.
  • Ein Nachteil dieses Ansatzes besteht darin, dass der gemeinsame Puffer mindestens so groß wie der größte zu vermittelnde Rahmen sein muss, was jedoch eine ziemlich unerwünschte und schwer vorherzusehende Einschränkung darstellt.
  • Lea C-T et al. beschreiben in „A/I Net: A Network that Integrates ATM and IP", IEEE Network, New York, Januar 1999, Bd. 13, Nr. 1, S. 48 bis 55, Forschungsarbeiten zur Integration von ATM- und IP-Datenverkehr, um mit Hilfe einer Vermittlungsarchitektur mit unverschachtelter Übertragung von IP-Datenpaketen die Unzulänglichkeiten eines ATM- oder IP-Standalone-Netzes zu beseitigen.
  • In der US-Patentschrift 5822540 werden ein Verfahren und eine Einrichtung zum Löschen von Rahmen in einer Datenübertragungseinheit beschrieben. Es werden eine Vielzahl von Zellen empfangen, die eine Vielzahl von Rahmen darstellen, wobei jede Zelle einen Datenteil sowie einen Headerteil umfasst, der eine Anzeige für die Zellenverlustpriorität beinhaltet. Mindestens einige der Zellen werden in einem Puffer gespeichert. Wenn eine erste Zelle mit einer Markierung „Dateiende" empfangen wird, wird ermittelt, ob die Anzahl der Zellen im Puffer einen ersten Schwellenwert überschreitet. Wenn beim Ermittlungsschritt festgestellt wird; dass der erste Schwellenwert überschritten wurde, und der Wert der Zellenverlustprioritätsanzeige für eine aus der Reihe von Zellen auf einen ersten Status gesetzt ist, wird eine Reihe der zwischen der ersten und einer zweiten Zelle empfangenen Zellen gelöscht. Die zweite Zelle umfasst eine Zelle mit einer Markierung „Dateiende".
  • Zur Lösung der oben genannten Aufgaben, d. h. zur Verringerung der Verzögerung und damit zur Verhinderung der Notwendigkeit der Neuerstellung (des Wiederzusammensetzens) von Paketen variabler Länge in einer Vermittlungsanlage für Zellen fest vorgegebener Länge zielt die vorliegende Erfindung im Wesentlichen auf Folgendes ab:
    • • Bereitstellen einer von Deadlocks freien Unterstützung für einen Modus mit Paketen variabler Länge (im Folgenden als Rahmenmodus bezeichnet),
    • • Erweitern dieses Rahmenmodus auf die von Deadlocks freie Multicast-Unterstützung, und
    • • Aufwertung dieses Rahmenmodus durch mehrere Prioritäten in der Weise, dass Rahmen mit höherer Priorität, die für denselben Ausgang vorgesehen sind, den aktuellen Rahmen vorgezogen werden können, nicht jedoch bei gleicher oder niedrigerer Priorität.
  • Somit nutzt die vorliegende Erfindung die Ressourcen besser aus, da der gemeinsame Puffer oder der gemeinsame Speicher nicht wie bei dem oben beschriebenen Ansatz von Stunkel et al. so groß sein muss, dass ein gesamter Rahmen gespeichert werden kann.
  • Mit anderen Worten, die vorliegende Erfindung verbessert Vermittlungsanlagen für Zellen fest vorgegebener Länge dahingehend, dass auch Pakete variabler Länge unterstützt werden, wobei ein Paket aus einer Vielzahl von Zellen besteht, sodass die Vermittlungsanlage ohne Nachteile als herkömmliche Vermittlungsanlage für Zellen fest vorgegebener Länge genutzt werden kann. Somit sorgt die vorliegende Erfindung dafür, dass eine herkömmliche Vermittlungsanlage für Zellen fest vorgegebener Länge in ATM-Netzen sowie in Multiprozessorumgebungen zur Nachrichtenweiterleitung, z. B. in SP2-Umgebungen, eingesetzt werden kann, wie sie üblicherweise bei der Parallelverarbeitung verwendet werden. Zusammenfassend ist zu sagen, dass der große Nutzen der vorliegenden Erfindung darin besteht, dass sie Vermittlungen unterschiedlicher Bauart, die für verschiedene Netzwerkarten ausgelegt sind, zu einer Gesamtarchitektur vereint.
  • DIE ERFINDUNG
  • Zur Lösung der obigen Aufgaben stellt die Erfindung einen neuartigen Ansatz sowie bevorzugte Ausführungsarten zur Verfügung, d. h. eine praktische Hardwareimplementierung, die – bei vertretbaren Mehrkosten für zusätzliche Hardware – auf elegante Weise und vorzugsweise in Form einer Vermittlungsstruktur auf einem einzelnen Chip die beiden Konzepte des Multicasting und des Rahmenmodus miteinander verknüpft, indem eine Architektur mit Ausgabewarteschlange und gemeinsamem Speicher verwendet und keiner der Leistungsvorteile einer solchen Architektur eingeschränkt wird.
  • Die Hauptvorteile des Ansatzes gemäß der vorliegenden Erfindung bestehen in der bezüglich der Vermittlung nahtlosen Einbeziehung von Unicast- und Multicast-Rahmen und der kostengünstigen zusammenführung von drei überaus wünschenswerten Merkmalen zu einer Vermittlungsstruktur.
  • Während der Anwendungsbereich einer herkömmlichen Zellenvermittlungsanlage üblicherweise ziemlich eingeschränkt war, kann eine Vermittlungsstruktur dieser Art durch die zusätzlich eingefügten Rahmenmodus- und Multicasting-Funktionalitäten in einer Vielzahl von Produkten eingesetzt werden:
    • • herkömmliche ATM-Anwendungen,
    • • Routing-Anwendungen (native Unterstützung für TCP/IP-Pakete mit variabler Länge,
    • • Ethernet-Anwendungen (native Unterstützung für Ethernet-Rahmen mit variabler Länge),
    • • (Mainframe-)Server-Anwendungen (als Hochgeschwindigkeitsverbindung zur Bildung von Server-Clustern anstelle der herkömmlichen Vernetzung) und/oder
    • • Anwendungen zur Parallelverarbeitung (anstelle der herkömmlichen Busstruktur zur Verbindung von Prozessoren und Speicher).
  • In der nachfolgenden Beschreibung wird die folgende Bezeichnungsweise verwendet: OP(i:range(i):expr(i))wobei OP ein beliebiger binärer Operator sein kann, i eine Platzhalter-Variable ist, range(i) einen Bereich (und/oder eine Bedingung) für die Variable i ausdrückt und expr(i) ein beliebiger Ausdruck sein kann, der üblicherweise auch eine Funktion von i ist. Diese Bezeichnungsweise stellt eine Kurzfassung für expr(i0)op expr(i1)op...expr(in-1)op expr(in)dar, wobei i0 bis in die Werte von i sind, welche der Bedingung range(i) genügen.
  • DAS SYSTEM
  • 1 zeigt die Architektur auf Systemebene. Es wird von einer Systemgröße mit N Eingängen × N Ausgängen, d. h. N × N, ausgegangen, obwohl die Erfindung nicht auf Systeme mit gleicher Anzahl von Eingängen und Ausgängen beschränkt ist. Auf der Eingangsseite kommen Dateneinheiten variabler Länge an, die durch die Segmentierungseinheiten in Zellen fest vorgegebener Länge segmentiert werden. Diese Zellen werden an die Eingabewarteschlangen weitergeleitet, wo sie entsprechend ihrem Ziel gespeichert werden. Dies wird oft als „virtuelle Ausgabewarteschlange" (Virtual Output Queuing, VOQ) bezeichnet. Der Eingabewarteschlangen-Arbiter legt unter Berücksichtigung der Berechtigungsinformationen für die Ausgabewarteschlange und den Speicher fest, welche Anfangszelle eines Rahmens weitergeleitet werden soll. Dieses System wird von C. Minkenberg, A.P.J. Engbersen und M. Colmant in „A Robust Switch Architecture for Bursty Traffic" beschrieben, veröffentlicht in Proc. Int. Zurich Seminar on Broadband Communication IZS 2000, Zürich, Schweiz, 15. bis 17. Februar 2000, S. 207 bis 214.
  • Um die Integrität (Unversehrtheit) eines Rahmens sicherzustellen, muss die FIFO-Reihenfolge (First-In-First-Out) der für denselben Ausgang vorgesehenen Zellen mit derselben Priorität strikt eingehalten werden. Für die korrekte Arbeitsweise des Systems zwar nicht unbedingt notwendig, aber zu empfehlen ist, dass Rahmen von der Eingabewarteschlange an andere Ausgänge übertragen werden, ohne mit Zellen von anderen Rahmen verschachtelt zu werden, das heißt, sobald die Startzelle eines Rahmens ausgewählt worden ist, leitet die Eingabewarteschlange in nachfolgenden Zeitschlitzen die Fortsetzungszellen und die Endzelle des Rahmens weiter, wobei auch hier immer die Berechtigungsinformationen berücksichtigt werden. Andere Anfangszellen von Rahmen werden erst zur Übertragung vorgesehen, nachdem der aktuelle Rahmen fertig ist, d. h. erst nachdem eine Rahmen-Endzelle übertragen wurde.
  • Zellen werden zur Vermittlungsanlage gesendet, die sie zu ihrem richtigen Ziel bzw. ihren Zielen weiterleitet. Die an der Ausgangsseite der Vermittlungsanlage austretenden Zellen werden dann durch die Neuerstellungseinheiten wieder zu Rahmen zusammengesetzt. Wenn der Rahmenmodus aktiv ist, weist diese Einheit keine Funktionalität auf, abgesehen davon, dass sie möglicherweise die internen Kopfdaten der Vermittlungsanlage aus der Zelle entfernt. Intern ist die Vermittlungsanlage so organisiert, dass der Steuerungsbereich nur die Speicheradressen bearbeitet, während die Daten durch den gemeinsamen Speicher geleitet werden, was von W.E. Denzel, A.P.J. Engbersen und I. Iliadis in „A Flexible Shared-Buffer Switch for ATM at Gb/s Rates", veröffentlicht in Computer Networks and ISDN Systems, Bd. 27, Nr. 4, Januar 1995, S. 611 bis 624, beschrieben wird.
  • Es ist bekannt, dass sich die Konfiguration mit gemeinsamem Speicher zur Realisierung der Multicast-Übertragung gut eignet, denn die Daten werden nur einmal gespeichert, während die entsprechende Adresse für alle Zielwarteschlangen vervielfältigt wird. Ein der Speicheradresse zugeordneter Zähler wird zu Anfang auf die Anzahl der zu übertragenden Exemplare gesetzt und für jedes die Vermittlungsanlage verlassende Exemplar um eins verringert, und die Adresse wird erst dann freigegeben, wenn der Zähler den Wert null erreicht, d. h. wenn das letzte Exemplar die Vermittlungsanlage verlassen hat.
  • Die Vermittlungsanlage bedient sich eines Ablaufsteuerungsmechanismus, der aus zwei Signalen besteht:
    • • einer Berechtigung Gi;SM für den gemeinsamen Speicher, die auf der Auslastung OSM des Speichers basiert. Wenn die Speicherauslastung einen programmierbaren Schwellenwert TSM überschreitet, wird die Berechtigung für den gemeinsamen Speicher aufgehoben. Sobald die Eingabewarteschlangen das Vorliegen dieser Bedingung erkennen, dürfen sie keine Zellen mehr senden. Dabei ist zu beachten, dass die Berechtigung für den gemeinsamen Speicher eigentlich keine Funktion des Wertes i ist. Gi;SM := OSM < TSM, für 0 ≤ i < N (1)
    • • einer Einzelzielberechtigung Gi(j), die auf der Auslastung OQ(J) der Ausgabewarteschlange basiert. Dies ist ein Vektor der Größe N, dessen Bit j dem Status der Ausgabewarteschlange j entspricht. Wenn die Auslastung der Ausgabewarteschlange einen programmierbaren Schwellenwert TQ(j) überschreitet, wird die entsprechende Ausgabewarteschlangenberechtigung aufgehoben, indem das entsprechende Bit im Vektor der Einzelzielberechtigung zurückgesetzt wird. Wenn die Eingabewarteschlangen das Vorliegen dieser Bedingung erkennen, senden sie keine weiteren Zellen, die für diesen Ausgang vorgesehen sind. Gi(j) := OQ < TQ(j), für 0 ≤ i < N (2)
  • Man beachte, dass die Begriffe „Einzelzielberechtigung" und „Ausgabewarteschlangenberechtigung" synonym gebraucht werden.
  • Außerdem wird davon ausgegangen, dass die Ausgabewarteschlangen so bemessen sind, dass eine der Warteschlangen alle Speicheradressen aufnehmen kann. Zellen werden, unabhängig vom Status der Ausgabewarteschlangen, immer so lange aufgenommen, wie Adressen im gemeinsamen Speicher zur Verfügung stehen. Wenn eine Adresse des gemeinsamen Speichers nicht verfügbar ist, wird dies als schwerwiegender Fehler angezeigt, da dies den Verlust einer Zelle mit sich bringen würde.
  • RAHMENMODUS
  • Ein Rahmen ist als Dateneinheit variabler Länge definiert, deren Größe einem Vielfachen der fest vorgegebenen Zellengröße der Vermittlungsanlage entspricht. Wenn ein Rahmen übertragen werden soll, wird er in kleinere Zellen fest vorgegebener Länge segmentiert, die dann durch die Vermittlungsanlage geleitet werden. Dabei werden die erste Zelle eines Rahmens als Anfangszelle des Rahmens, alle folgenden Zellen vor der letzten Zelle als Fortsetzungszellen und die letzte Zelle als Endzelle des Rahmens bezeichnet. Wenn keine weiteren Maßnahmen getroffen werden, kann es sein, dass Zellen von verschiedenen Rahmen (die von verschiedenen Eingängen kommen) an einem Ausgang verschachtelt werden, sodass eine Rahmenneuerstellung (Wiederzusammensetzung) erforderlich ist. Deshalb ist es wünschenswert, Rahmen ohne Verschachtelung zu übertragen, da dies zu besseren Werten der mittleren Rahmenverzögerung führt. Diese Betriebsart wird im Folgenden als Rahmenmodus bezeichnet.
  • Die Einführung des Rahmenmodus führt aber leider zu einer Reihe von möglichen Deadlock-Zuständen:
    • • Deadlock der Ausgabewarteschlange und des gemeinsamen Speichers durch Unicast-Datenverkehr,
    • • Deadlock des gemeinsamen Speichers durch Multicast-Datenverkehr, und
    • • Deadlock des gemeinsamen Speichers durch mehrere Datenverkehrsprioritäten.
  • Allgemein kommt es zu diesen Deadlocks, wenn ein Ausgang auf eine Fortsetzungszelle des gerade übertragenen Rahmens wartet und diese Zelle nicht aufgenommen werden kann, da die Ausgabewarteschlange oder der gemeinsame Speicher voll ist.
  • DETAILLIERTE BESCHREIBUNG DER FUNKTION UND EINER AUSFÜHRUNGSART
  • In der folgenden ausführlichen Beschreibung wird zuerst die Funktion der Erfindung beschrieben. Anschließend wird eine Hardwareimplementierung dargelegt. Diese Beschreibung wird durch die beiliegenden Zeichnungen ergänzt und vervollständigt, die verschiedene Beispiele darstellen:
  • 1 zeigt die oben bereits erörterte Architektur auf Systemebene;
  • die 2a bis 2c zeigen den Deadlock im Rahmenmodus;
  • 3 zeigt ein für Multicasting untaugliches Aktiv-Konzept;
  • 4 zeigt einen Deadlock von zyklisch wartenden Multicast-Rahmen mit zwei Rahmen;
  • 5 zeigt einen Deadlock von zyklisch wartenden Multicast-Rahmen mit drei Rahmen;
  • 6 zeigt eine Implementierung für eine logische Ausgabewarteschlange;
  • 7 zeigt ein Format für einen Eintrag in der Ausgabewarteschlange;
  • 8 zeigt einen Vergleich zwischen der Größe der Ausgabewarteschlange und der Implementierung, und
  • 9 zeigt einen gemeinsamen Speicher mit getrennten Steuer- und Datenpfaden.
  • VERHINDERUNG VON UNICAST-DEADLOCKS
  • Zuerst wird erläutert, wie das Auftreten von Deadlock-Zuständen verhindert wird, wenn nur Unicast-Datenverkehr (Datenverkehr mit einem einzigen Ziel) in Betracht gezogen wird.
  • Zum Deadlock-Zustand Ausgabewarteschlange voll kommt es, wenn der Schwellenwert der Ausgabewarteschlange überschritten wird, während sich in der Warteschlange keine Fortsetzungszellen des aktuellen Rahmens mehr befinden. Da die Warteschlange als voll gekennzeichnet ist, dürfen die Zellen auch nicht mehr in die Vermittlungsanlage gelangen und es kommt zum Deadlock.
  • Der Deadlock gemeinsamer Speicher ist ähnlich. Wenn der Schwellenwert des gemeinsamen Speichers überschritten ist (der Speicher ist „voll"), werden alle Eingänge für das Senden weiterer Zellen gesperrt, wodurch die erforderlichen Fortsetzungszellen möglicherweise daran gehindert werden, in die Vermittlungsanlage zu gelangen, was wiederum die Vermittlungsanlage daran hindert, die in erster Linie benötigten Speicheradressen freizugeben.
  • Die 2a bis 2c veranschaulichen die Deadlock-Situation. Von zwei sehr langen Rahmen, einem ersten Rahmen 11 und einem zweiten Rahmen 12, mit demselben Ziel wird gerade der Rahmen 11 übertragen. Bevor der Rahmen 11 seine Ausgabe 13 beendet, wird die Ausgabewarteschlange 10 (oder der gemeinsame Speicher) mit Zellen für den Rahmen 12 gefüllt, bis der Schwellenwert Warteschlange voll (oder der Schwellenwert gemeinsamer Speicher) überschritten und dadurch verhindert wird, dass weitere Zellen in die Vermittlungsanlage gelangen.
  • Um diese Deadlock-Zustände zu umgehen, wurde das neuartige Konzept der „aktiven Eingänge" entwickelt: Definition 1 (Aktiv-Konzept): Ein Eingang i wird in Bezug auf den Ausgang j als aktiv definiert, wenn am Ausgang j ein Rahmen in Übertragung befindlich ist, der am Eingang i angekommen ist. Die aktiven Zustände werden durch die Booleschen Vektoren Ai(*) dargestellt. Ein Eingang wird als aktiv bezeichnet und durch Ai* dargestellt, wenn er in Bezug auf mindestens einen Ausgang aktiv ist. A*i := ∃(j : 0 ≤ j < N : Ai(j) ≡ wahr) (3)
  • „In Übertragung befindlich" bedeutet hier, dass die Startzelle des Rahmens bereits übertragen worden ist, die Endzelle des Rahmens hingegen noch nicht. Ein in Übertragung befindlicher Rahmen wird auch als aktiver Rahmen bezeichnet und der Ausgang, über den der Rahmen übertragen wird, als aktiver Ausgang.
  • Außerdem wird für den gemeinsamen Speicher ein Zustand fast voll definiert. Ein programmierbarer Schwellenwert TAF für den Zustand fast voll wird mit der aktuellen Speicherauslastung OSM verglichen. Ausgehend von einer Ablaufsteuerungsverzögerung, die D Zellenschlitzen zwischen Vermittlungsanlage und Adapter entspricht, sollte dieser Schwellenwert kleiner als oder gleich dem Schwellenwert Speicher voll minus Produkt aus D mal Anzahl der Ports N programmiert werden: TAF ≤ TSM – D*N (3a)
  • Wenn die Auslastung des gemeinsamen Speichers diesen Schwellenwert überschreitet, wird der gemeinsame Speicher als fast voll bezeichnet. Dieser Schwellenwert wird auf einen Wert unterhalb des tatsächlichen Schwellenwertes Speicher voll programmiert und genügt der Gleichung (3a).
  • Im Vergleich zur herkömmlichen Ablaufsteuerung der Gleichungen (1) und (2) wird nun die Steuerung des an die Adapter abgehenden Datenstroms wie folgt für die Berechtigung des gemeinsamen Speichers geändert zu G*i,SM := (¬(OSM ≥ TAF) ∨ A*i ) ∧ ¬(OSM ≥ TSM) (4)und für die Berechtigung der Ausgabewarteschlange zu Gi(j) := (¬(OQ(j) ≥ TQ(j)) ∨ Ai(j) mit 0 ≤ i ≤ N und 0 ≤ j ≤ N (5)
  • Dabei ist zu beachten, dass diese Gleichung für aktive Eingänge keinen maximalen Grenzwert für die Größe der Warteschlange festlegt. Deshalb wird davon ausgegangen, dass die Ausgabewarteschlange mindestens so groß ist wie der gemeinsame Speicher.
  • Die obigen Gleichungen (4) und (5) können wie folgt gelesen werden:
    • • Ein Eingang i empfängt eine Berechtigung für den gemeinsamen Speicher dann und nur dann, wenn ((der gemeinsame Speicher nicht fast voll ist) ODER (Eingang i als aktiv gekennzeichnet ist)) UND (der gemeinsame Speicher nicht voll ist).
    • • Ein Eingang i empfängt eine Ausgabeberechtigung für den Ausgang j dann und nur dann, wenn (die Ausgabewarteschlange j ihren Schwellenwert nicht überschritten hat) ODER (der Eingang i für den Ausgang j als aktiv gekennzeichnet ist).
  • Man beachte, dass die Vermittlungsanlage zu einer Crossbar-Betriebsart übergeht, wenn der Schwellenwert fast voll überschritten ist, weil dann nur ein Eingang an einen aktiven Ausgang senden darf, d. h., ähnlich wie bei der Crossbar-Architektur besteht eine Eins-zu-eins-Zuordnung zwischen (aktiven) Eingängen und Ausgängen. Ferner ist zu beachten, dass sowohl die Berechtigung für den gemeinsamen Speicher als auch die Einzelzielberechtigung nun für jeden einzelnen Eingang festgelegt wird.
  • Dieses Schema löst den Deadlock der Ausgabewarteschlange, da es sicherstellt, dass die Berechtigung für die Ausgabewarteschlange für den Eingang, der möglicherweise noch den Rest des Rahmens senden muss, so lange gültig bleibt, wie der Rahmen noch nicht vollständig übertragen ist, sodass er die Bedingung Ausgabewarteschlange voll umgehen kann. Man beachte, dass nur dieser Eingang eine gültige Berechtigung für diesen Ausgang erhält. Der aktive Status für einen Eingang muss für jeden einzelnen Ausgang gekennzeichnet werden, da ein Eingang eigentlich gleichzeitig für mehrere Ausgänge aktiv sein kann. Wenn die Eingabewarteschlange Rahmen an verschiedene Ausgänge nicht verschachtelt, ist sichergestellt, dass sich nur einer dieser Rahmen nicht vollständig in der Vermittlungsanlage befindet.
  • Darüber hinaus löst dieses Schema auch Deadlocks des gemeinsamen Speichers. Zur Erinnerung: Diese Deadlocks treten auf, weil die Eingänge, in welchen sich die erforderlichen Fortsetzungszellen befinden, nicht senden können, da die Vermittlungsanlage voll ist, und die Vermittlungsanlage keine Speicheradressen freigeben kann, da sie diese Fortsetzungszellen benötigt. Das Ergebnis des Aktiv-Schemas besteht darin, dass bei einer fast vollen Vermittlungsanlage mit noch einigen freien Adressen, deren Schwellenwert fast erreicht ist, diese Adressen auf jeden Fall denjenigen Eingängen zur Verfügung gestellt werden, die sie benötigen.
  • Ein anderer Aspekt besteht darin, dass bei einer fast vollen Vermittlungsanlage garantiert ist, dass mindestens so viele Zellen die Einheit verlassen wie ankommen, sodass sichergestellt ist, dass die Speicherauslastung nicht größer wird, wodurch der Speicher den Schwellenwert „voll" nicht erreicht. Das Zutreffen letzterer Feststellung lässt sich einfach daran erkennen, dass zu keinem Zeitpunkt mehr Eingänge aktiv sind als Rahmen übertragen werden (kein Ausgang kann mit der Übertragung von Rahmen von mehr als einem Eingang beschäftigt sein), und folglich während jedes Zyklus mindestens genauso viele Zellen die Vermittlungsanlage über die aktiven Ausgänge verlassen wie an den aktiven Eingängen in die Vermittlungsanlage gelangen.
  • VERHINDERUNG VON MULTICAST-DEADLOCKS
  • Während der obige Ansatz das Problem der Deadlock-Entstehung für den Unicast-Fall löst, liegt beim Multicast-Datenverkehr eine andere Deadlock-Situation vor. Das Wesentliche an diesem neuen Problem besteht darin, dass die Zellenübertragung und die Zurückgewinnung der Adressen nicht mehr direkt miteinander gekoppelt sind, da eine Zelle, die in Übertragung befindlich ist, d. h. die Vermittlungsanlage verlässt, eine Speicheradresse erst dann freigibt, wenn es sich bei der Zelle um deren letztes Exemplar handelt. Bei der Unicast-Übertragung ist das immer der Fall, weil nur ein Exemplar übertragen wird; bei Multicast-Zellen stellt das oben beschriebene Aktiv-Konzept jedoch keine Lösung dar.
  • In 3 wird die Vermittlungsanlage von zwei sehr langen Rahmen durchlaufen, einem Multicast-Rahmen 21 und einem Unicast-Rahmen 22, die zu den Ausgängen 23 und 24 gelangen. Der Multicast-Rahmen 21 soll zu beiden Ausgängen 23 und 24, der Unicast-Rahmen 22 lediglich zum Ausgang 24 gehen.
  • Der Rahmen 21 wird über den Ausgang 23 und der Rahmen 22 über den Ausgang 24 übertragen. Nach dem Aktiv-Konzept sind die beiden Eingänge 21 und 22 aktiv und ermöglichen, dass Fortsetzungszellen von beiden Rahmen in die Vermittlungsanlage gelangen. Da jedoch die Zellen vom Multicast-Rahmen 21 zusätzlich auch noch über den Ausgang 24 übertragen werden müssen, werden ihre Speicheradressen noch nicht freigegeben. Das führt dazu, dass mindestens einer der Speicher 20 oder 20' so lange mit den Zellen des Rahmens 21 gefüllt wird, bis der Schwellenwert Speicher voll überschritten ist, sodass die Vermittlungsanlage in eine Deadlock-Situation kommt.
  • Dieses Problem lässt sich durch Einführung des erweiterten Aktiv-Konzepts anstelle des Aktiv-Konzepts nach Definition 1 lösen.
  • Definition 2 (Erweitertes Aktiv-Konzept): Ein Eingang i wird in Bezug auf den Ausgang j als aktiv definiert, wenn an diesem Ausgang j ein Rahmen in Übertragung befindlich ist, der am Eingang i angekommen ist und das letzte Exemplar des Rahmens darstellt. Die aktiven Zustände werden durch die Booleschen Vektoren Ai(j) dargestellt. Ein Eingang gilt als aktiv und wird durch den Vektor Ai* dargestellt, wenn er in Bezug auf mindestens einen Ausgang aktiv ist: Ai* := ∃(j : 0 ≤ j < N : Ai(j) ≡ wahr) (6, identisch mit 3)
  • Die Regeln zur Festlegung der Berechtigungen für den gemeinsamen Speicher und die Ausgabewarteschlange bleiben unverändert. Neu hinzugekommen ist die Bedingung, dass ein Eingang erst dann als aktiv markiert wird, wenn das letzte Exemplar des Rahmens gerade übertragen wird. Dadurch wird gewährleistet, dass die Adressen tatsächlich freigegeben werden, während die Zellen die Vermittlungsanlage verlassen, sodass die Zellenübertragung und die Zurückgewinnung der Adressen für aktive Eingänge auch hier miteinander gekoppelt sind. Zu beachten ist auch, dass diese erweiterte Definition des Aktiv-Konzepts für den Unicast-Datenverkehr ebenfalls gültig ist.
  • DEADLOCKS DURCH ZYKLISCH WARTENDE RAHMEN
  • Leider stellen Deadlocks des gemeinsamen Speichers nicht die einzige zusätzliche Schwierigkeit dar. Um auch bei intensivem Multicast-Datenverkehr einen hohen Datendurchsatz durch die Vermittlungsanlage zu gewährleisten, muss es möglich sein, mehrere Multicast-Rahmen parallel zu übertragen. Da die Menge an Zielen jedes Multicast-Rahmens eine beliebige Teilmenge aller Ziele ausmachen kann, führt dies zu Ausgangs-Deadlocks. Der gemeinsame Speicher und die Architektur der Ausgabewarteschlange der neuartigen Vermittlungsanlage gestatten die teilweise Übertragung von Rahmen, sodass vor der Übertragung nicht alle Ausgänge verfügbar sein müssen, was zu einem höheren Datendurchsatz führt. Diese Eigenschaft führt jedoch zu möglichen Deadlock-Situationen, die im Folgenden dargestellt werden.
  • 4 veranschaulicht den folgenden Fall. Der Rahmen 31 vom ersten Eingang hat Ziele an den Ausgängen 33 und 34. Der Rahmen 32 vom zweiten Eingang hat ebenfalls Ziele an diesen beiden Ausgängen. Die beiden Rahmen sind sehr lang. Der Rahmen 31 ist am Ausgang 33 aktiv und der Rahmen 32 am Ausgang 34. Es wird davon ausgegangen, dass sich außer den beiden Rahmen keine weiteren Rahmen in der Vermittlungsanlage befinden. Somit ist gemäß Definition 2 im Augenblick keiner der Rahmen aktiv, die beiden Speicher 30 und 30' werden gefüllt und beide werden gesperrt, wenn der Schwellenwert fast voll überschritten wird. Zu diesem Zeitpunkt warten die Rahmen 31 und 32 gegenseitig darauf, dass der jeweils andere fertig wird, was aber niemals eintreten wird, da keiner von beiden aktiv ist, wodurch den benötigten Fortsetzungszellen nicht gestattet wird, in die Vermittlungsanlage zu gelangen. Somit liegt nun ein Deadlock vor, der sich grundlegend von dem Deadlock des gemeinsamen Speichers unterscheidet und durch das oben beschriebene erweiterte Aktiv-Konzept allein nicht verhindert werden kann.
  • Man beachte, dass Rahmen nicht mindestens zwei gleiche Ziele haben müssen, um den Deadlock zu verursachen. Hierzu soll ein Szenario mit drei Rahmen gemäß 5 betrachtet werden, wo der Rahmen 41 für die Ausgänge 44 und 45, der Rahmen 42 für die Ausgänge 44 und 46 und der Rahmen 43 für die Ausgänge 45 und 46 bestimmt ist. Je zwei Rahmen haben nur ein Ziel gemeinsam, wenn jedoch der Rahmen 41 am Ausgang 44, der Rahmen 42 am Ausgang 46 und der Rahmen 43 am Ausgang 45 aktiv ist, wartet der Rahmen 42 darauf, dass der Rahmen 41 fertig wird, der Rahmen 41 wartet darauf, dass der Rahmen 43 fertig wird, und der Rahmen 43 wartet darauf, dass der Rahmen 42 fertig wird, womit der Teufelskreis geschlossen ist. Die Entscheidung, welcher Rahmen gesendet werden soll, wird durch einen Arbiter an jedem Ausgang unabhängig getroffen. Das Problem besteht darin, dass diese unabhängigen Entscheidungen zu zyklischen Wartebeziehungen führen können, die sich nicht auflösen lassen, sobald sie einmal bestehen. Deshalb muss verhindert werden, dass diese zyklischen Wartebeziehungen entstehen.
  • Diese zyklischen Abhängigkeiten lassen sich durch Einführung einer strengen Regel verhindern, welche die Reihenfolge der Speicherung der Rahmen in den Ausgabewarteschlangen festlegt. Diese strenge Ordnungsbeziehung wird dann und nur dann erfüllt, wenn
    • a) in derselben Ausgabewarteschlange wartende Rahmen entsprechend ihren Ankunftszeiten in der FIFO-Reihenfolge (First-In-First-Out) verarbeitet werden und
    • b) an verschiedenen Ausgängen gleichzeitig ankommende Multicast-Rahmen in allen entsprechenden Ausgabewarteschlangen in derselben relativen Reihenfolge gespeichert werden.
  • Dadurch wird sichergestellt, dass es an jedem Ausgang einen einzigen frühesten Rahmen gibt, der für keines seiner Ziele auf andere Rahmen zu warten braucht. Dadurch kann es nicht zu zyklischen Wartebeziehungen kommen und die Deadlock-Situation ist gelöst.
  • RAHMENMODUS UND PRIORITÄTEN
  • Bei der Einführung der QoS-Unterstützung mittels Prioritäten (vorausschauend, gewichtet oder ähnlich) gewinnt das Deadlock-Problem eine weitere Dimension. P sei die Gesamtzahl der durch die Vermittlungsanlage unterstützten Datenverkehrsprioritäten. Jeder Rahmen hat eine eigene Priorität p. Die für die Rahmen festgelegten Reihenfolgen gelten nur für Rahmen derselben Priorität. Rahmen unterschiedlicher Priorität dürfen in einer beliebigen Reihenfolge verarbeitet werden, die durch ein bestimmtes Sendeprioritätsschema festgelegt ist. Eine Möglichkeit besteht darin, generell Rahmen mit höherer Priorität, so genannte strenge oder präemptive Prioritäten, zu bevorzugen. Zellen von Rahmen unterschiedlicher Priorität werden möglicherweise sogar sowohl an den Eingängen als auch an den Ausgängen verschachtelt.
  • Schwierigkeiten treten auf, weil an einem Ausgang Rahmen mit unterschiedlichen Prioritäten verschachtelt werden dürfen. Deshalb kann es dazu kommen, dass ein Ausgang an mehreren Eingängen, aber für verschiedene Prioritäten, als aktiv markiert wird. Wenn keine weiteren Maßnahmen ergriffen werden, kann es passieren, dass die Ausgabewarteschlange zwar im Zustand fast voll ist, aber Zellen von mehreren Rahmen hineingelangen dürfen, obwohl nur eine Zelle die Warteschlange verlassen kann. Damit ist das Aktiv-Konzept verletzt.
  • Die Einführung von Prioritäten bedeutet, dass die Statusmarkierungen der Eingänge je Priorität gelten müssen, da es passieren kann, dass an ein und demselben Ausgang mehrere Rahmen (ein Rahmen für jede Priorität) gleichzeitig aktiv sind, weshalb die Statusmatrizen der Eingänge nach Definition 2 nun auch je Priorität einen Index erhalten: Ap,i(*). Ebenso werden die Berechtigungen für den gemeinsamen Speicher und die Ausgabewarteschlange je Priorität erteilt.
  • Die Funktion der Vermittlungsanlage im Modus fast voll kann dadurch wiederhergestellt werden, dass nur derjenigen Priorität eine Berechtigung erteilt wird, für die während des aktuellen Zyklus eine Zelle die Vermittlungsanlage verlassen hat. Dies geschieht durch Verfolgen an jedem Ausgang, von welchem Eingang und mit welcher Priorität eine Zelle zuletzt übertragen worden ist.
  • Definition 3 (Ausgangssendestatus): Der Ausgangssendestatus Bpj(i) ist als wahr definiert, wenn eine Zelle mit der Priorität p während des aktuellen Zyklus vom Eingang i über den Ausgang j übertragen wurde oder wenn überhaupt keine Zelle übertragen wurde, und als falsch, wenn das Gegenteil der Fall ist.
  • Definition 4 stellt eine Erweiterung des erweiterten Aktiv-Konzepts von Definition 2 durch Einbeziehung von Prioritäten dar.
  • Definition 4: (Sendeaktiv-Konzept) Ein Eingang i wird in Bezug auf die Priorität p und den Ausgang j als aktiv definiert, wenn am Ausgang j ein Rahmen mit der Priorität in Übertragung befindlich ist, der am Eingang i angekommen ist und das letzte Exemplar des Rahmens darstellt. Die aktiven Zustände werden durch die Booleschen Vektoren Ap,i(j) dargestellt. Der durch den Vektor Ap,i* gekennzeichnete Begriff „aktiver Eingang" wird beibehalten. A*p,j := ∃(j : 0 ≤ j < N : Ap,j(j) ≡ wahr) (7)
  • Außerdem wird ein Eingang für die durch Ap,i* dargestellte Priorität p als sendeaktiv bezeichnet, wenn er in Bezug auf mindestens einen Ausgang aktiv ist, der gemäß Definition 3 für diese Priorität und diesen Eingang als aktiv gekennzeichnet ist: A*p,j := ∃(j : 0 ≤ j < N : Ap,j(j) ≡ wahr ∧ Bp,j ≡ wahr) (8)
  • Die Berechtigung für den gemeinsamen Speicher wird durch Gleichung (9) neu definiert: Gp,i,SM := (¬(OSM ≥ TAF) ∨ A*p,i ) ∧ ¬(OSM ≥ TSM) (9)wobei 0 ≤ p < P, 0 ≤ i < N und 0 ≤ j < N ist.
  • Zum Schluss wird für jede Priorität ein Schwellenwert des gemeinsamen Speichers hinzugefügt, woraus sich Gleichung (10) ergibt: Gp,i,SM := (((¬(Op,SM ≥ Tp,SM) ∨ A*p,i ) ∧ ¬(OSM ≥ TAF)) ∨ ((OSM ≥ TAF) ∧ A*p,i )) ∧ ¬(OSM ≥ TSM) (10)wobei Op,SM und Tp,SM Auslastungszähler bzw. Schwellenwerte je Priorität darstellen.
  • Die Berechtigung für die Ausgabewarteschlange wird zyklisch je Priorität übertragen (eine Priorität je Zyklus), wird jedoch durch das Hinzufügen von Prioritäten anderweitig nicht beeinflusst. Die zyklische Übertragung führt dazu, dass der Status der Berechtigung für die Ausgabewarteschlange am Adapter alle P Zyklen nur einmal aktualisiert wird, wodurch die Hysterese größer wird. Gp,i(j) := ¬(Op,Q(j) ≥ Tp,Q(j)) ∨ Ap,j(j) (11)
  • Gleichung (11) geht von programmierbaren Schwellenwerten je Priorität sowie von Zählern für die Warteschlangenauslastung je Priorität aus, jedoch ist dies für das Funktionieren der Deadlock-Verhinderung ohne Bedeutung.
  • Die Gleichungen (10) und (11) zeigen deutlich die vier verschiedenen hier vorgestellten Mechanismen zur Verhinderung von Deadlocks:
    • • Die Markierung Ap,i(j) aktiv in Gleichung (11) verhindert Deadlocks der Ausgabewarteschlange.
    • • Das Glied Ap,i* in Gleichung (10) verhindert Deadlocks des gemeinsamen Speichers mit den je Priorität festgelegten Schwellenwerten.
    • • Dasselbe Glied verhindert auch Multicast-Deadlocks des gemeinsamen Speichers mit Hilfe des erweiterten Aktiv-Konzepts (nur aktiv, wenn das letzte Exemplar gerade verarbeitet wird).
    • • Das ebenfalls in Gleichung (10) enthaltene Glied Ap,i* verhindert Deadlocks des gemeinsamen Speichers, wenn dieser fast voll ist. Dies betrifft die Verhinderung sowohl von Multicast-Deadlocks des gemeinsamen Speichers als auch von Prioritäts-Deadlocks des gemeinsamen Speichers.
  • IMPLEMENTIERUNG
  • Im Folgenden werden einige praktische Erwägungen in Bezug auf Implementierungen und Ausführungsarten dargestellt und beschrieben.
  • Gemeinsamer Speicher
  • Jede Adresse des gemeinsamen Speichers besteht aus dem Speicherplatz für eine Zelle und zusätzlich einem zugehörigen Multicast-Zähler. Jede Eingangssteuerung verfügt über eine freie Adresse, an der die nächste ankommende Zelle gespeichert werden soll. Wenn eine Zelle ankommt, geschieht Folgendes:
    • • Die Daten der Zelle werden an der verfügbaren Speicheradresse gespeichert,
    • • die Adresse wird in jeder Ziel-Ausgabewarteschlange gespeichert, die durch die Zielbitmap in den Kopfdaten der Zelle angegeben ist, und
    • • die Anzahl der Ziele wird gezählt und in dem zur Speicheradresse gehörenden Zähler gespeichert.
  • 9 veranschaulicht eine Implementierung des gemeinsamen Speichers mit getrennten Steuer- und Datenpfaden. An einer Vielzahl von Eingängen 91 kommen Zellen an, die an eine Vielzahl von Ausgängen 92 weitergeleitet werden sollen. Die Eingangscontroller 93 empfangen von der Adressverwaltung 101 freie Speicheradressen. Diese Eingangscontroller 93 senden die Daten der Zellen durch eine Eingangsroutingstruktur 94, welche die Daten zum richtigen Speicherplatz im gemeinsamen Speicher 95 leitet. Der zu diesem Speicherplatz des gemeinsamen Speichers gehörende (nicht dargestellte) Auslastungszähler wird auf die Anzahl der zu sendenden Exemplare dieser Zelle initialisiert. Die Adressen des gemeinsamen Speichers werden an den Zugriffsmanager 98 der Ausgabewarteschlange gesendet, der sie dann entsprechend der Zielinformation in den Kopfdaten der Zelle zu einer oder mehreren Ziel-Ausgabewarteschlangen 99 weiterleitet. Die Adressen werden in die Ausgabewarteschlangen 99 eingereiht. Der Lesemanager 100 der Ausgabewarteschlange entfernt während jedes Zellenschlitzes eine Adresse aus jeder Ausgabewarteschlange 99 und leitet diese Adressen zu den entsprechenden Ausgangscontrollern 97 weiter, welche von der empfangenen Adresse des gemeinsamen Speichers 95 die entsprechenden Zellendaten abrufen. Die Daten werden vom gemeinsamen Speicher 95 durch eine Ausgangsroutingstruktur 96 an die Ausgangscontroller 97 gesendet. Die Adressen werden an die Adressverwaltung 101 zurückgegeben, welche den entsprechenden (nicht dargestellten) Auslastungszähler für jede zurückgegebene Adresse um 1 verringert. Diejenigen Adressen, für welche der Auslastungszähler den Wert null erreicht hat, werden freigegeben und in die freie Warteschlange gestellt und können wieder verwendet werden.
  • Rahmenmodus
  • Beim Rahmenmodus handelt es sich um einen konfigurierbaren Modus. Wenn dieser Modus aktiviert ist, verfolgt jeder Ausgang, welchen Rahmen er gerade verarbeitet, und verarbeitet so lange keine anderen Rahmen, bis der aktuelle Rahmen fertiggestellt ist.
  • Jede Zelle weist eine Markierung auf, die anzeigt, ob es sich um eine Anfangszelle, eine Fortsetzungszelle oder eine Endzelle des Rahmens handelt. Wenn am Ausgang j eine am Eingang i empfangene Anfangszelle mit der Priorität p übertragen wird und es sich dabei um das letzte Exemplar der Zelle handelt (wenn der entsprechende Zähler gleich eins ist), wird der Ausgang als aktiv gekennzeichnet und das entsprechende Bit j im Aktiv-Register Ap,i gesetzt. Wenn am Ausgang j eine am Eingang i empfangene Endzelle mit der Priorität p übertragen wird, wird das entsprechende Bit j im Register Ap,i gelöscht, falls es vorher gesetzt war.
  • Wenn am Ausgang j eine am Eingang i empfangene beliebige Zelle der Priorität p gesendet wird, wird das entsprechende Bit im Sendestatusregister Bp,j des Ausgangs gesetzt.
  • Diese Register Ap,i und Bp,j, mit 0 ≤ i, j < V, 0 ≤ p < V, dienen zur Modifizierung der Berechtigungssignale gemäß den Gleichungen (10) und (11) für den gemeinsamen Speicher bzw. für die Ausgabewarteschlange.
  • Ausgabewarteschlangen
  • Zur Aktivierung des Rahmenmodus müssen die Ausgabewarteschlangen Reihenfolgeinformationen erstens zur Ermittlung der Reihenfolge, in der die gespeicherten Rahmen übertragen werden sollen, und zweitens zur Einhaltung der Reihenfolge der Anfangs-, Fortsetzungs- und Endzellen für jeden Rahmen pflegen. Das kann mit Hilfe einer in 6 gezeigten zweidimensionalen verknüpften Liste erreicht werden. In der ersten, horizontalen Richtung sind alle Anfangszellen der Rahmen miteinander verknüpft. In der zweiten Richtung sind die Fortsetzungs- und Endzellen der entsprechenden Rahmen miteinander verknüpt.
  • Logikoperationen
  • Jede Anfangszelle SoF (Start-of-Frame) erfordert zwei Zeiger auf nächste Zellen, einen auf die Anfangszelle des nächsten Rahmens und einen auf die erste Fortsetzungszelle des eigenen Rahmens. Fortsetzungszellen benötigen nur einen Zeiger auf die nächste Zelle, und zwar auf die nächste Fortsetzungszelle. Endzellen EoF (End-of-Frame) benötigen keinen Nächste-Zelle-Zeiger. Man beachte, dass eine Zelle gleichzeitig eine SoF- und eine EoF-Zelle sein kann, wenn der Rahmen lediglich aus einer einzigen Zelle besteht.
  • Darüber hinaus speichert jede Ausgabewarteschlange eine Anzahl von weiteren Zeigern, welche ihre Funktion unterstützen:
    • • einen Lesezeiger, der die nächste aus der Warteschlange zu lesende Zelle anzeigt,
    • • einen Anfangszeiger, der die erste SoF-Zelle in der Warteschlange anzeigt,
    • • einen Endzeiger, der auf die letzte SoF-Zelle in der Warteschlange zeigt, sodass neu ankommende Rahmen (Anfangszellen) sofort an der richtigen Stelle angehängt werden, und
    • • eine Matrix von N Schreibzeigern, einen je Eingang, die jeweils auf die letzte Zelle eines noch nicht fertig verarbeiteten Rahmens vom entsprechenden Eingang zeigen (zu jedem Zeitpunkt kann für jedes Eingangs-/Ausgangspaar nur ein Rahmen unvollständig verarbeitet sein). Neu ankommende
  • Fortsetzungszellen werden an der durch den entsprechenden Schreibzeiger angezeigten Stelle angehängt.
  • Alle Zeiger nehmen den Wert null an, wenn sie momentan ungültig sind. Wenn mehrere Prioritäten unterstützt werden müssen, wird für jede Priorität ein Satz aller oben erwähnten Zeiger benötigt.
  • Angenommen, in jeder Ausgabewarteschlange OQ gibt es Platz für Q Zellen und die Warteschlangenschlitze sind von 0 bis Q – 1 durchnummeriert. Es wird davon ausgegangen, dass ein bestimmtes Warteschlangenverwaltungssystem einen Warteschlangenschlitz q zur Speicherung eines ankommenden Eintrags bereitstellt. Im Folgenden wird die Funktion der Ausgabewarteschlange OQ ausführlich beschrieben.
  • Zu Anfang ist die Ausgabewarteschlange leer und alle Zeiger haben den Wert null. Wenn eine Zelle ankommt, wird ihre Speicheradresse zusammen mit der Nummer des Eingangs, auf welchem die Zelle angekommen ist, und dem Zellentyp (SoF, CoF, EoF, wobei CoF eine Fortsetzungszelle kennzeichnet) an die Ziel-Ausgabewarteschlange übergeben. Entsprechend dem Typ der gerade geschriebenen Zelle müssen die folgenden drei Fälle unterschieden werden:
    • • SoF: Wenn die OQ leer ist, wird die Zelle am Schlitz q in die Warteschlange aufgenommen und der Anfangs-, der End- und der Lesezeiger werden jeweils auf q gesetzt. Wenn die OQ jedoch nicht leer ist, wird die Zelle an dem durch den Endzeiger angezeigten Ende der Warteschlange angehängt, d. h. der nächste SoF-Zeiger des Endzeigereintrags wird auf q und der Endzeiger ebenfalls auf q gesetzt. In beiden Fällen wird auch der entsprechende Schreibzeiger auf q gesetzt. Dieser Schreibzeiger muss gleich null sein; wenn das nicht der Fall sein sollte, handelt es sich um eine Fehlerbedingung, da der vorhergehende Rahmen von demselben Eingang noch nicht fertig verarbeitet wurde. Die letzte CoF-Zelle (oder SoF-Zelle, wenn keine CoF-Zelle vorliegt) sollte als EoF-Zelle markiert sein, um den unvollständig verarbeiteten Rahmen mit einem Ende zu versehen. Wenn der Anfangszeiger gleich null ist, wird er aktualisiert.
    • • CoF: Die Zelle wird am Schlitz q in die Warteschlange aufgenommen. Wenn der entsprechende Schreibzeiger nicht gleich null ist, wird die Zelle mit der vorhergehenden Zelle ihres Rahmens verknüpft, indem der nächste CoF-Zeiger des durch diesen Schreibzeiger angezeigten Eintrags auf den Wert q und der Schreibzeiger ebenfalls auf q aktualisiert wird. Wenn der Schreibzeiger gleich null ist, gibt es in Abhängigkeit von dem Eingang, an welchem die Zelle angekommen ist, zwei Möglichkeiten. Wenn der Eingang gleich dem gegenwärtig aktiven Eingang des Rahmens ist (falls es einen solchen gibt), muss die Zelle zu diesem Rahmen gehören und sowohl der Lesezeiger als auch der entsprechende Schreibzeiger werden auf q gesetzt. Ansonsten liegt eine Fehlerbedingung vor, weil dieser Zelle offensichtlich keine SoF- oder CoF-Zelle desselben Eingangs unmittelbar vorausging oder die Zelle gar nicht zu dem im Augenblick aktiven Rahmen gehört; die ankommende Zelle sollte dann als SoF-Zelle markiert und entsprechend dem obigen Punkt behandelt werden, um die Situation zu klären. Außerdem wird der Lesezeiger auf q gesetzt, wenn die Ausgabewarteschlange OQ leer ist. Das kann nur geschehen, wenn die Zelle zu dem gerade übertragenen Rahmen gehört, denn sonst würde es sich um eine Fehlerbedingung handeln. Wenn sich der Eingang der neuen Zelle von dem des gerade übertragenen Rahmens unterscheidet oder wenn gerade kein Rahmen übertragen wird, muss ein Fehler aufgetreten sein. Alle Zellen von diesem Eingang müssen dann bis zur nächsten SoF-Zelle gelöscht werden.
    • • EoF: Ebenso wie bei CoF, wobei zusätzlich der entsprechende Schreibzeiger gleich null gesetzt wird, um anzuzeigen, dass der Rahmen fertig verarbeitet ist.
  • OQ-Leseoperationen werden wie folgt ausgeführt. Wenn der Lesezeiger gleich null ist, wird keine Zelle gelesen, d. h. die Warteschlange bleibt inaktiv. Man beachte, dass dies nicht gleichbedeutend ist mit einer leeren Warteschlange: die Warteschlange kann aufgrund des Fehlens von Fortsetzungszellen des gerade in Verarbeitung befindlichen Rahmens blockiert sein. Wenn der Lesezeiger nicht gleich null ist, wird die durch den Lesezeiger angezeigte Zelle gelesen. Je nach Art der gerade gelesenen Zelle müssen die folgenden drei Fälle unterschieden werden:
    • • SoF: der Lesezeiger wird auf den nächsten CoF-Eintrag der Zelle aktualisiert. Wenn der nächste CoF-Wert gleich null ist, wird der Lesezeiger ebenfalls gleich null. Dies erfolgt dann, wenn ein Rahmen durch die OQ noch nicht vollständig empfangen worden ist. Der Endzeiger wird auf den nächsten SoF-Eintrag der Zelle (der gleich null sein kann) gesetzt. Der Anfangszeiger wird auf den nächsten SoF-Eintrag der Zelle (der auch gleich null sein kann) aktualisiert.
    • • CoF: der Lesezeiger wird auf den nächsten CoF-Eintrag der Zelle aktualisiert.
    • • EoF: der Lesezeiger wird auf den Wert des Anfangszeigers aktualisiert. Wenn der Anfangszeiger jetzt gleich null ist, wird der Endzeiger ebenfalls gleich null gesetzt.
  • In allen drei Fällen muss außerdem geprüft werden, ob der Schreibzeiger des entsprechenden Eingangs (der Eingang, auf welchem die gerade gelesene Zelle angekommen ist) auf den gerade gelesenen Eintrag der Warteschlange zeigt. Wenn dies der Fall ist, müssen sowohl der betreffende Schreibzeiger als auch der Lesezeiger gleich null gesetzt werden. Die Ausgabewarteschlange OQ verfolgt auch die Nummer des Eingangs des gerade übertragenen Rahmens.
  • 6 zeigt eine logische Implementierung der Ausgabewarteschlange. Der Rahmen 1 wird gerade übertragen und der Lesezeiger zeigt die nächste zu lesende Zelle an, während der Rahmen 6 gerade vom Eingang 7 empfangen wird und der entsprechende Eingangszeiger die letzte Fortsetzungszelle dieses Rahmens anzeigt. Man beachte, dass die Anfangszellen in horizontaler Richtung miteinander verknüpft sind und der Anfangs- und der Endzeiger den ersten und letzten Rahmen in der Warteschlange anzeigen.
  • Physische Implementierung
  • Die Unterstützung des Rahmenmodus wird dadurch erkauft, dass jeder Eintrag in der Warteschlange zwei Zeiger auf eine nächste Zelle benötigt – einen Zeiger auf die nächste Anfangszelle und einen Zeiger auf die nächste Fortsetzungszelle – obwohl eigentlich nur die Anfangszellen wirklich beide Zeiger benötigen. 7 zeigt die Felder, die bei einer so einfachen Implementierung einen einzelnen Eintrag in einer Ausgabewarteschlange darstellen. Die Größe der Vermittlungsanlage beläuft sich auf N Ports und die Größe des gemeinsamen Speichers auf M Zellen. Jede Ausgabewarteschlange hat die Größe Q, d. h. die Warteschlange kann bis zu Q Einträgen speichern.
  • 7 zeigt die Felder, die einen einzelnen Eintrag in einer Ausgabewarteschlange darstellen, d. h. das Format der Einträge der Ausgabewarteschlange. In dieser Figur bedeuten:
  • A
    die Speicheradresse,
    B
    die nächste Anfangszelle,
    C
    die nächste Fortsetzungszelle,
    D
    die Zelltypkennung, und
    E
    die Eingangskennung.
  • Die folgende Tabelle zeigt die Feldgrößen der Warteschlangeneinträge:
    Figure 00310001
  • Die oben genannten Größen der einzelnen Felder der Warteschlangeneinträge summieren sich auf (log2M + 2 + log2Q + log2N + 2) Bit je Eintrag und insgesamt auf NQ(log2M + 2 + log2Q + log2N + 2). Diese Implementierung stellt die Alternative ,a' dar.
  • 8 zeigt im oberen Teil ein Beispiel für einen gemeinsamen Speicher und darunter zwei Varianten einer Ausgabewarteschlange, welche die Größe der Ausgabewarteschlange in Abhängigkeit von der Implementierung zeigen. Der mittlere Teil zeigt eine Ausgabewarteschlange für Q < M, wobei Q die Größe der Ausgabewarteschlange und M die Größe des gemeinsamen Speichers ist, und der untere Teil der Figur zeigt eine Ausgabewarteschlange der Größe Q = M.
  • Der gemeinsame Speicher gemäß der Darstellung besteht aus M Paketspeicherplätzen, die von 0 bis M – 1 durchnummeriert sind. Der untere Teil zeigt zwei alternative OQ-Implementierungen. Bei der ersten OQ-Implementierung ist die Größe Q der Warteschlange kleiner als die Größe M des Speichers. Die Warteschlangenschlitze sind von 0 bis Q – 1 durchnummeriert. Diese Implementierung benötigt für jeden Warteschlangeneintrag zwei Felder, um die verknüpfte Liste zu erstellen, d. h. die Speicheradresse des aktuellen Eintrags und den Warteschlangenschlitz des nächsten Warteschlangeneintrags. Die unten dargestellte zweite Implementierung, bei der die Größe der Warteschlange Q = M ist, benötigt wie dargestellt zum Erstellen der verknüpften Liste nur den nächsten Warteschlangenschlitz.
  • Wenn die Größe der Ausgabewarteschlangen mit Q = M gleich der Größe des gemeinsamen Speichers gewählt wird, kann eine Verbesserung erreicht werden. Auf den ersten Blick mag dies verschwenderisch aussehen, jedoch weist es einige Vorteile auf, was mit Hilfe von 8 erläutert wird.
  • Erstens: Obwohl die Warteschlange mehr Einträge aufnimmt, können diese kleiner werden, da – aufgrund der Eins-zu-eins-Beziehung zwischen dem Platz in der Warteschlange und der Speicheradresse – die Speicheradresse eigentlich nicht mehr in der Warteschlange gespeichert werden muss, was bei einer Warteschlange, die kleiner als der Speicher ist, nicht möglich ist. Darüber hinaus benötigt eine kleinere Warteschlange ihre eigene freie Warteschlange mit der zugehörigen Logik für die Warteschlangenverwaltung, die in 8 nicht gezeigt ist. Die Figur zeigt anhand eines Beispiels, wie die Folge der Zellen {a; b; c; d} in beiden Implementierungen miteinander verknüpft ist. Die Größe der Warteschlangeneinträge ist bei dieser Implementierung gleich (2log2M + log2N + 2) bei einer Gesamtgröße von NM(2log2M + log2N +2). Diese Implementierung stellt die Alternative ,b' dar.
  • Weitere Verbesserungen sind möglich, indem darauf geachtet wird, dass SoF-Einträge nur einen Zeiger auf die nächste SoF-Zelle benötigen, während CoF-Einträge nur einen Zeiger auf die nächste CoF-Zelle benötigen. Außerdem braucht die Eingangskennung nur zusammen mit SoF-Einträgen gespeichert zu werden. Diese Beobachtungen legen eine Implementierung mit getrennten Warteschlangen für SoF- und CoF-Einträge nahe. Eine große Einsparung lässt sich aus der Erkenntnis ableiten, dass die Reihenfolge der CoF-Zellen eines bestimmten Rahmens aufgrund der Definition eines Rahmens an allen Ausgängen identisch ist; das heißt, die CoF-Reihenfolge braucht nicht für jeden einzelnen Ausgang aufrechterhalten zu werden. Dies impliziert, dass neben den N SoF-Warteschlangen nur eine CoF-Warteschlange (ebenfalls mit der Größe M) benötigt wird.
  • Für die obige Tabelle bedeutet dies, dass die SoF-Warteschlangen die Felder B und E speichern und die CoF-Warteschlange das Feld C speichert. Da der Zellentyp bereits durch die Warteschlange repräsentiert wird, in welcher die Zelle gespeichert ist, wird (für alle Einträge in allen Warteschlangen) zur Kennzeichnung der EoF-Zellen nur eine 1-Bit-Kennung für den Zellentyp benötigt.
  • Die sich daraus ergebende Implementierung benötigt für die SoF-Warteschlangen NM(log2M + log2N + 1) Bits und zusätzlich für die CoF-Warteschlange M(log2M + 1) Bits, insgesamt also (N + 1)M(log2M + 1) + NMlog2N Bits. Dies stellt die letzte alternative Implementierung ,c' dar.
  • Die folgende Tabelle vergleicht die Komplexität der drei vorgeschlagenen alternativen Implementierungen anhand des gesamten erforderlichen Speichervolumens, ausgedrückt in Bit.
  • Figure 00330001
  • Zur Vermeidung von Deadlocks durch zyklisch wartende Rahmen muss beim Einstellen in die Warteschlange eine strenge Reihenfolge eingehalten werden. Das kann wie folgt erreicht werden: Die Ausgabewarteschlangen halten für jeden einzelnen Rahmen strikt das FIFO-Prinzip ein. Rahmen, die gleichzeitig an einer Ausgabewarteschlange ankommen, werden entsprechend einer vorgegebenen Reihenfolge ihrer jeweiligen Eingangsnummern eingeordnet. Das kann umlaufend oder nach einem anderen geeigneten Ordnungsprinzip erfolgen. Entscheidend für die Einhaltung der strikten zeitlichen Reihenfolge ist, dass diese Reihenfolge an allen Ausgängen identisch ist. Die Reihenfolge der Eingänge muss jedoch in aufeinander folgenden Zeitschlitzen nicht identisch sein. Aus Gründen der Fairness kann die Reihenfolge für jeden Zeitschlitz in geeigneter Weise neu arrangiert werden.
  • Somit bietet die vorliegende Erfindung eine Möglichkeit zur Einbeziehung der Unterstützung sowohl des Rahmenmodus als auch des Multicasting in einer Zellenvermittlungsanlage mit Ausgabewarteschlangen und gemeinsamem Speicher. Es wurde gezeigt, wie Deadlock-Situationen im Unicast- und im Multicast-Rahmenmodus vermieden werden können, und eine Übersicht gegeben, wie diese Systeme realisiert werden können.

Claims (14)

  1. Verfahren zur Schaffung einer Routing-Funktion für Datenverkehr von Einheiten variabler Länge in einer Vermittlungsanlage mit gemeinsamem Speicher für Zellen fest vorgegebener Länge, bei welchem eine ankommende Einheit variabler Länge, ein Rahmen (10, 11), in eine Vielzahl von Zellen fest vorgegebener Länge, einschließlich einer Anfangszelle, einer oder mehrerer Fortsetzungszelle(n) und einer Endzelle, segmentiert wird, wobei die Zellen mit fest vorgegebener Länge durch die Vermittlungsanlage geleitet werden und das Verfahren dadurch gekennzeichnet ist, dass an einem Ausgang (13) der Vermittlungsanlage die nachfolgende und von gegenseitigen Sperrungen (Deadlocks) freie Übertragung aufeinander folgender Zellen eines bestimmten Rahmens dadurch gewährleistet wird, dass eine Verschachtelung mit Zellen eines anderen Rahmens verhindert wird, indem – für den gemeinsamen Speicher eine vorgegebene Berechtigung definiert wird, – für den bestimmten Rahmen und seine Zellen eine vorgegebene Berechtigung für die Ausgabewarteschlange definiert wird, – die Aufnahme des Eintrags einer Zelle in den gemeinsamen Speicher in Abhängigkeit von der Berechtigung für den gemeinsamen Speicher gesteuert wird, – die Übertragung der Zelle des bestimmten Rahmens in Abhängigkeit von der Berechtigung für die Ausgabewarteschlange gesteuert wird, und ein Ablaufsteuerungsmechanismus verwendet wird, der das auf der Speicherauslastung basierende Berechtigungssignal für den gemeinsamen Speicher und das auf der Auslastung der Ausgabewarteschlange basierende Berechtigungssignal für die Ausgabewarteschlange umfasst, wobei der Mechanismus die folgenden Schritte umfasst: – Aufheben der Berechtigung für den gemeinsamen Speicher unter der Bedingung, dass die Speicherauslastung einen programmierbaren Schwellenwert überschreitet, wobei die Berechtigung für den gemeinsamen Speicher die Aufnahme des Eintrags einer Zelle in den gemeinsamen Speicher in der Weise steuert, dass der Eintrag dann und nur dann aufgenommen wird, wenn im gemeinsamen Speicher freies Speichervolumen verfügbar ist UND im gemeinsamen Speicher eine vorgegebene Bedingung „fast voll" nicht erfüllt ist, die ein begrenztes verfügbares Speichervolumen anzeigt, ODER eine Bedingung „aktiver Rahmen" erfüllt ist, welche anzeigt, dass die Anfangszelle eines bestimmten Rahmens, nicht aber seine Endzelle, übertragen worden ist, – Aufheben der Berechtigung für die Ausgabewarteschlange unter der Bedingung, dass die Auslastung der Ausgabewarteschlange einen programmierbaren Schwellenwert überschreitet, wobei die Berechtigung für die Ausgabewarteschlange die Übertragung einer Zelle durch die Vermittlungsanlage zu einem bestimmten Ausgang dann und nur dann gestattet, wenn die zu dem bestimmten Ausgang gehörende Ausgabewarteschlange ihren vorgegebenen Schwellenwert nicht überschritten hat ODER die Zelle für den bestimmten Ausgang als „aktiv" markiert wurde, d. h. zu einem „aktiven Rahmen" gehört, dessen Anfangszelle, nicht aber dessen Endzelle, übertragen worden ist, und die Eingabewarteschlangen nach dem Erkennen des Vorliegens einer dieser Bedingungen keine weiteren Zellen mehr senden dürfen.
  2. Verfahren nach Anspruch 1, bei welchem ferner einem zu übertragenden Rahmen ein Multicast-Vektor zugewiesen wird, der eine Vielzahl von Ausgängen der Vermittlungsanlage anzeigt.
  3. Verfahren nach Anspruch 1 oder 2, bei welchem ferner einem zu übertragenden Rahmen eine Priorität zugewiesen wird und, an einem Ausgang der Vermittlungsanlage die Übertragung von Zellen eines Rahmens mit niedrigerer Priorität unterbrochen wird, wenn ein Rahmen mit höherer Priorität an demselben Ausgang übertragen werden soll.
  4. Verfahren nach Anspruch 3, bei welchem die Übertragung von Zellen des Rahmens mit der niedrigeren Priorität wieder aufgenommen wird, wenn der Rahmen mit der höheren Priorität vollständig übertragen worden ist.
  5. Verfahren nach Anspruch 1, bei dem jeder Ausgang verfolgt, welcher Rahmen gegenwärtig „aktiv" ist, d. h. übertragen wird, und keinen anderen Rahmen überträgt, bis die Endzelle des aktuellen Rahmens übertragen worden ist.
  6. verfahren nach einem der vorangehenden Ansprüche, bei welchem jeder Zelle eine Markierung zugewiesen wird, welche anzeigt, ob es sich um eine Anfangs-, eine Fortsetzungs- oder eine Endzelle handelt.
  7. Verfahren nach Anspruch 1, bei welchem die Bedingung „fast voll" für den gemeinsamen Speicher ein programmierbarer Schwellenwert ist, der unterhalb eines Schwellenwertes „Speicher voll", d. h. unterhalb des gesamten verfügbaren Volumens des Speichers liegt.
  8. Verfahren nach Anspruch 7, bei welchem der Schwellenwert TAF „fast voll" kleiner als oder gleich dem Schwellenwert TSM „Speicher voll" minus dem Produkt aus D mal Anzahl der Ports N der Vermittlungsanlage ist, TAF ≤ TSM – D·N,wobei D gleich der Ablaufsteuerungsverzögerung in den Zellen der Vermittlungsanlage ist.
  9. Verfahren nach einem der vorangehenden Ansprüche, bei welchem die Berechtigung für die Ausgabewarteschlange, welche die Übertragung einer Zelle durch die Vermittlungsanlage zu einem bestimmten Ausgang steuert, auf die Verhinderung von Multicast-Deadlocks ausgeweitet wird, indem ein Rahmen dann und nur dann als „aktiv" definiert wird, wenn sein letztes Exemplar gerade übertragen wird, sodass die Berechtigung für die Ausgabewarteschlange die Übertragung einer Zelle dann und nur dann gestattet, wenn – die zu diesem Ausgang gehörende Ausgabewarteschlange ihren vorgegebenen Schwellenwert noch nicht überschritten hat ODER – die Zelle für den bestimmten Ausgang als „aktiv" markiert wurde, d. h. zum letzten Exemplar eines „aktiven Rahmens" gehört, dessen Anfangszelle, nicht aber dessen Endzelle, übertragen worden ist.
  10. Verfahren nach einem der vorangehenden Ansprüche, bei dem die Berechtigung für die Ausgabewarteschlange, welche die Übertragung einer Zelle durch die Vermittlungsanlage zu einem bestimmten Ausgang steuert, auf die Verhinderung von Rahmenprioritäts-Deadlocks ausgeweitet wird, indem ein Rahmen dann und nur dann als „aktiv" definiert wird, wenn seine höchste Priorität gerade übertragen wird, sodass die Berechtigung für die Ausgabewarteschlange die Übertragung einer Zelle dann und nur dann gestattet, wenn – die zu diesem Ausgang gehörende Ausgabewarteschlange ihren vorgegebenen Schwellenwert noch nicht überschritten hat ODER – die Zelle für den bestimmten Ausgang als „aktiv" markiert wurde, d. h. zur höchsten. Priorität eines „aktiven Rahmens" gehört, dessen Anfangszelle, nicht aber dessen Endzelle, übertragen worden ist.
  11. Vermittlungsanlage für Zellen fest vorgegebener Länge mit gemeinsamem Speicher und Ausgabewarteschlangen zur Schaffung einer Routing-Funktion für Datenverkehr von Zellen variabler Länge, dadurch gekennzeichnet, dass jede Adresse im Speicher – Speicherplatz für eine Zelle, und – einen zugehörigen Multicast-Zähler beinhaltet, und somit, wenn eine Zelle ankommt, Mittel – zum Speichern der Daten der Zelle an einer verfügbaren Speicheradresse im gemeinsamen Speicher (95), – zum Speichern der verwendeten Adresse in jeder der Ziel-Ausgabewarteschlangen (99), an welche die Zelle adressiert ist, und – zum Zählen und Speichern der Anzahl der Ziele im Zähler bereitstellt, wobei die Vermittlungsanlage über einen Ablaufsteuerungsmechanismus verfügt, der zwei Signale umfasst: – ein auf der Auslastung des gemeinsamen Speichers basierendes Berechtigungssignal, das unter der Bedingung aufgehoben wird, dass die Speicherauslastung einen programmierbaren Schwellenwert überschreitet, wobei die Berechtigung für den gemeinsamen Speicher die Aufnahme des Eintrags einer Zelle in den gemeinsamen Speicher in der Weise steuert, dass der Eintrag dann und nur dann aufgenommen wird, wenn im gemeinsamen Speicher freies Speichervolumen verfügbar ist UND im gemeinsamen Speicher eine vorgegebene Bedingung „fast voll" nicht erfüllt ist, die ein begrenztes verfügbares Speichervolumen anzeigt, ODER eine Bedingung „aktiver Rahmen" erfüllt ist, welche anzeigt, dass die Anfangszelle eines bestimmten Rahmens, nicht aber seine Endzelle, übertragen worden ist, – ein auf der Auslastung der Ausgabewarteschlange basierendes Berechtigungssignal, das unter der Bedingung aufgehoben wird, dass die Auslastung der Ausgabewarteschlange einen programmierbaren Schwellenwert überschreitet, wobei die Berechtigung für die Ausgabewarteschlange die Übertragung einer Zelle durch die Vermittlungsanlage zu einem bestimmten Ausgang dann und nur dann gestattet, wenn die zu dem bestimmten Ausgang gehörende Ausgabewarteschlange ihren vorgegebenen Schwellenwert nicht überschritten hat ODER die Zelle für den bestimmten Ausgang als „aktiv" markiert wurde, d. h. zu einem „aktiven Rahmen" gehört, dessen Anfangszelle, nicht aber dessen Endzelle, übertragen worden ist, wobei die Eingabewarteschlangen nach dem Erkennen des Vorliegens einer dieser Bedingungen keine weiteren Zellen mehr senden dürfen.
  12. Vermittlungsanlage nach Anspruch 11, die ferner eine Vielzahl jeweils einem bestimmten Eingang und einem bestimmten Ausgang zugewiesener Register zum Speichern einer Markierung, vorzugsweise eines Bits, beinhaltet, welche anzeigt, dass der bestimmte Ausgang in Bezug auf den bestimmten Eingang „aktiv" ist, wobei die Markierung gesetzt wird, wenn eine auf dem bestimmten Eingang empfangene Anfangszelle eines bestimmten Rahmens auf dem bestimmten Ausgang übertragen wird und der bestimmte Rahmen das letzte zu übertragende Exemplar ist, und wobei die Markierung wieder zurückgesetzt wird, wenn die entsprechende Endzelle auf dem bestimmten Ausgang übertragen wird.
  13. Vermittlungsanlage nach Anspruch 11 oder 12, welche ferner Folgendes umfasst: – Mittel zum Zuweisen einer Priorität für einen zu übertragenden Rahmen und – Mittel zum Unterbrechen und/oder Wiederaufnehmen der Übertragung von Zellen eines Rahmens mit niedrigerer Priorität, wenn ein Rahmen mit höherer Priorität auf demselben Ausgang übertragen werden soll.
  14. Vermittlungsanlage nach Anspruch 11, welche ferner Folgendes beinhaltet: – eine Vielzahl jeweils einer bestimmten Priorität, einem bestimmten Eingang und einem bestimmten Ausgang der Vermittlungsanlage zugewiesener Register zum Speichern einer Markierung, vorzugsweise eines Bits, welche anzeigt, dass der bestimmte Ausgang in Bezug auf den bestimmten Eingang und die bestimmte Priorität „aktiv" ist, wobei die Markierung gesetzt wird, wenn eine auf dem bestimmten Eingang empfangene Anfangszelle eines bestimmten Rahmens der bestimmten Priorität auf dem bestimmten Ausgang übertragen wird und der bestimmte Rahmen das letzte zu übertragende Exemplar ist, und wobei die Markierung wieder zurückgesetzt wird, wenn die entsprechende Endzelle auf dem bestimmten Ausgang übertragen wird, – eine Vielzahl jeweils einer bestimmten Priorität, einem bestimmten Eingang und einem bestimmten Ausgang der Vermittlungsanlage zugewiesener Register zum Speichern einer Markierung, vorzugsweise eines Bits, welche anzeigt, dass der bestimmte Ausgang in Bezug auf den bestimmten Eingang und die bestimmte Priorität „sendeaktiv" ist, wobei die Markierung gesetzt wird, wenn entweder eine auf dem bestimmten Eingang empfangene Zelle eines bestimmten Rahmens mit der bestimmten Priorität während des aktuellen Paketzyklus auf dem bestimmten Ausgang übertragen worden ist oder wenn auf dem bestimmten Ausgang überhaupt keine Zelle übertragen worden ist, und wobei die Markierung wieder zurückgesetzt wird, wenn dies nicht der Fall ist.
DE60127366T 2000-11-24 2001-11-16 Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher Expired - Lifetime DE60127366T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00811122 2000-11-24
EP00811122 2000-11-24

Publications (2)

Publication Number Publication Date
DE60127366D1 DE60127366D1 (de) 2007-05-03
DE60127366T2 true DE60127366T2 (de) 2007-11-29

Family

ID=8175052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127366T Expired - Lifetime DE60127366T2 (de) 2000-11-24 2001-11-16 Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher

Country Status (4)

Country Link
US (1) US7050440B2 (de)
AT (1) ATE357790T1 (de)
DE (1) DE60127366T2 (de)
TW (1) TW513635B (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US20030163618A1 (en) * 2002-02-27 2003-08-28 Vishal Anand Shared queue for multiple input-streams
US7339943B1 (en) * 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
EP1432179B1 (de) * 2002-12-16 2008-03-19 Alcatel Lucent Mehrkanaliges Netzknoten und Verfahren zur Vermittlung/Leitweglenkung den Daten
WO2004082197A2 (en) * 2003-03-12 2004-09-23 Bader David M System for simultaneously transmitting multiple rf signals using a composite waveform
US7835397B2 (en) * 2003-04-25 2010-11-16 Alcatel-Lucent Usa Inc. Frame processing
US8848587B2 (en) * 2003-04-25 2014-09-30 Alcatel Lucent Multicasting network packets
US20050036502A1 (en) * 2003-07-23 2005-02-17 International Business Machines Corporation System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's
US7706394B2 (en) * 2003-07-23 2010-04-27 International Business Machines Corporation System and method for collapsing VOQ's of a packet switch fabric
CN100449504C (zh) * 2005-01-05 2009-01-07 华为技术有限公司 一种基于bitmap表的缓存管理方法
US8281031B2 (en) * 2005-01-28 2012-10-02 Standard Microsystems Corporation High speed ethernet MAC and PHY apparatus with a filter based ethernet packet router with priority queuing and single or multiple transport stream interfaces
US7577133B1 (en) * 2005-09-09 2009-08-18 Juniper Networks, Inc. Scalable central memory switching fabric
JP4616135B2 (ja) * 2005-09-21 2011-01-19 オリンパス株式会社 撮像装置および画像記録装置
US7944930B2 (en) * 2005-12-09 2011-05-17 Cisco Technology, Inc. Memory buffering with fast packet information access for a network device
JP4550728B2 (ja) * 2005-12-14 2010-09-22 アラクサラネットワークス株式会社 パケット転送装置及びマルチキャスト展開方法
US7593330B1 (en) * 2006-01-30 2009-09-22 Juniper Networks, Inc. Processing of partial frames and partial superframes
US20070216696A1 (en) * 2006-03-16 2007-09-20 Toshiba (Australia) Pty. Limited System and method for document rendering employing bit-band instructions
US8154989B1 (en) * 2008-05-16 2012-04-10 Xilinx, Inc. Recovering a shared channel within a network from a deadlock state
US8311174B1 (en) 2008-05-16 2012-11-13 Xilinx, Inc. Persistent synchronization within a media oriented systems transport network
WO2012036905A1 (en) * 2010-09-16 2012-03-22 Apple Inc. Multi-ported memory controller with ports associated with traffic classes
US8799633B2 (en) 2011-02-11 2014-08-05 Standard Microsystems Corporation MAC filtering on ethernet PHY for wake-on-LAN
EP2979513B1 (de) * 2013-03-25 2020-05-20 Altiostar Networks, Inc. Tcp-proxy in einem lte-funkzugangsnetz
US10257117B2 (en) 2014-11-05 2019-04-09 Avago Technologies International Sales Pte. Limited Distributed switch architecture
US10491973B2 (en) * 2015-04-24 2019-11-26 Rockley Photonics Limited Optoelectronic switch
EP3776231B1 (de) 2018-03-30 2023-05-03 Google LLC Verfahren zur implementierung eines quellenbasierten routings innerhalb einer interconnect fabric auf einem system-on-chip
WO2019191431A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. PROTOCOL LEVEL CONTROL FOR SYSTEM ON A CHIP (SoC) AGENT RESET AND POWER MANAGEMENT
CN110233805B (zh) * 2019-07-02 2021-09-03 天津市滨海新区信息技术创新中心 可变信元的交换装置、系统及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0531599B1 (de) * 1991-09-13 1998-07-22 International Business Machines Corporation Konfigurierbare gigabit/s Vermittlunganpassungseinrichtung
EP0676878A1 (de) * 1994-04-07 1995-10-11 International Business Machines Corporation Effizientes Punkt zu Punkt und Punkt zu Mehrpunkt Weglenkungsverfahren für programmierbare Vermittlungsknoten in Hochgeschwindigkeits-Datenübertragungsnetzen
US5689505A (en) * 1996-01-16 1997-11-18 Lucent Technologies Inc. Buffering of multicast cells in switching networks
JP3156623B2 (ja) * 1997-01-31 2001-04-16 日本電気株式会社 ファイバチャネルファブリック
US6160812A (en) * 1998-05-04 2000-12-12 Cabletron Systems, Inc. Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch
US6754216B1 (en) * 2000-05-08 2004-06-22 Nortel Networks Limited Method and apparatus for detecting congestion and controlling the transmission of cells across a data packet switch
US20020087716A1 (en) * 2000-07-25 2002-07-04 Shakeel Mustafa System and method for transmitting customized multi priority services on a single or multiple links over data link layer frames

Also Published As

Publication number Publication date
DE60127366D1 (de) 2007-05-03
ATE357790T1 (de) 2007-04-15
US7050440B2 (en) 2006-05-23
US20020196778A1 (en) 2002-12-26
TW513635B (en) 2002-12-11

Similar Documents

Publication Publication Date Title
DE60127366T2 (de) Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher
DE60036031T2 (de) Zuweisung von prioritätsstufen in einem datenfluss
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE69908821T2 (de) Datenvermittlungsverfahren und -vorrichtung
DE69915704T2 (de) Ampic dram
DE102015017100B3 (de) Verteilte Switch-Architektur
DE60120807T2 (de) Schaltvorrichtung und Verfahren
DE69534540T2 (de) Apparat und Methode zur Verarbeitung von Bandbreitenanforderungen in einer ATM-Vermittlungsstelle
DE69635880T2 (de) Anlage und Methode zur Übertragung von Paketen, geeignet für eine grosse Anzahl von Eingangstoren
DE69827053T2 (de) Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk
DE60126934T2 (de) Vermittlungssystem
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE69835330T2 (de) Überlastungsverwaltung in einem Mehrtorigen-Vermittlungssystem mit gemeinsamen Speicher
DE69733703T2 (de) Puffer von Mehrfachsendezellen in Vermittlungsnetzen
DE60022243T2 (de) Verfahren in ATM Vermittlungsstellen zur optimalen Verwaltung eines Puffers mit dynamischen Schwellwerten für die Länge von Warteschlangen
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
EP0641099A1 (de) Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung
DE112013003900B4 (de) Reservierungsverfahren und vorrichtung zur verringerung von verhungern von agenten und zurückprallen von nachrichten für zweidimensionale interconnects ohne pufferspeicher
DE60110934T2 (de) Modularer und skalierbarer switch und verfahren zum verteilen schneller ethernet-datenrahmen
DE60131380T2 (de) Segmentierung und wiederzusammensetzung von datenrahmen
DE102020105776A1 (de) Kostengünstige Überlastungsisolierung für verlustfreies Ethernet
EP0351014B1 (de) Koppelfeld für ein Vermittlungssystem
DE60036493T2 (de) Datenflusssteuerung
DE69626679T2 (de) Vermittlungseinrichtung

Legal Events

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