DE102015014167B4 - Verteilte switch-architektur - Google Patents

Verteilte switch-architektur Download PDF

Info

Publication number
DE102015014167B4
DE102015014167B4 DE102015014167.8A DE102015014167A DE102015014167B4 DE 102015014167 B4 DE102015014167 B4 DE 102015014167B4 DE 102015014167 A DE102015014167 A DE 102015014167A DE 102015014167 B4 DE102015014167 B4 DE 102015014167B4
Authority
DE
Germany
Prior art keywords
tile element
egress
ingress
packet
cut
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.)
Active
Application number
DE102015014167.8A
Other languages
English (en)
Other versions
DE102015014167A1 (de
Inventor
William Matthews
Bruce Kwan
Puneet Agarwal
Amit Kumar
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies International Sales Pte Ltd
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
Priority claimed from US14/927,103 external-priority patent/US10257117B2/en
Application filed by Avago Technologies International Sales Pte Ltd filed Critical Avago Technologies International Sales Pte Ltd
Publication of DE102015014167A1 publication Critical patent/DE102015014167A1/de
Application granted granted Critical
Publication of DE102015014167B4 publication Critical patent/DE102015014167B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren, das Folgendes umfasst:.Erstellen einer verteilten Pufferungsarchitektur (200, 300, 1300), die Folgendes umfasst:einen Eingangspaketpuffer (110) in einem Eintrittskachelelement (104, 1302); undeinen Ausgangspaketpuffer (136) in einem Austrittskachelelement (106, 1304);Verbinden des Eintrittskachelelements (104, 1302) und des Austrittskachelelements (106, 1304) mit einer Switching Fabric (901, 1306); undAusführen eines verteilten Bandbreitengewährungsmechanismus zwischen dem Eintrittskachelelement (104, 1302) und dem Austrittskachelelement (106, 1304) über die Switching Fabric (901, 1306), wobei der verteilte Bandbreitengewährungsmechanismus einen Cut-Through-Gewährungsmechanismus umfasst und das Verfahren ferner Folgendes umfasst:Empfangen einer Paketzelle in einem Sammelpuffer (1308) in dem Eintrittskachelelement (104, 1302);Treffen einer eintrittseitigen Entscheidung darüber, ob die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist;wenn die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304). geeignet ist, Senden einer Cut-Through-Anforderungsnachricht (1450) von dem Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) an den Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304);Treffen einer austrittseitigen Entscheidung darüber, ob die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist;wenn die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, Senden einer Cut-Through-Gewährungsnachricht (1550) von dem Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) an den Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302); undwenn die Paketzelle eintrittsseitig und austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, Ausführen eines Cut-Through-Modus, in dem die gesamte Paketpufferung sowohl an dem Eintrittskachelelement (104, 1302) als auch an dem Austrittskachelelement (106, 1304) umgangen wird, um einzelne Paketzellen von dem Eintrittskachelelement (104, 1302) an das Austrittskachelelement (106, 1304) weiterzuleiten, ohne darauf zu warten, dass das gesamte Paket ankommt, zu dem die einzelnen Paketzellen gehören.

Description

  • Diese Offenbarung betrifft die Netzwerkkommunikation. Diese Offenbarung betrifft außerdem eine verteilte Switch-Architektur für Cloud-Netzwerke.
  • Hochgeschwindigkeitsdatennetzwerke bilden einen Teil der Basis dessen, was zur unerlässlichen, weltweiten Datenkonnektivität geworden ist. Innerhalb der Datennetzwerke leiten Netzwerkvorrichtungen, wie beispielsweise Switches, Datenpakete von Ausgangs-Ports zu Ziel-Ports und tragen dazu bei, die Datenpakete letztendlich von einem Ausgangspunkt zu einem Zielpunkt zu lenken. Verbesserungen bei der Switch-Architektur werden die Leistung von Datennetzwerken noch weiter verbessern.
  • US 2003 / 0 227 926 A1 beschreibt eine Switch-Fabric mit mehreren Slices und einem zentralen Scheduler, über den Anforderungen parallel verteilt werden können, wobei die Switch-Fabric-Slices beispielsweise in einer festen Reihenfolge ausgewählt werden. Während alle Anfragen mit hoher Priorität gewährt werden, können Anfragen mit niedriger Priorität vom zentralen Scheduler gemäß einer gewichteten Fair-Share-Richtlinie gewährt werden.
  • US 2004 / 0 085 967 A1 beschreibt ein System und ein Verfahren für einen zellenbasierten Wrapped Wave Front Arbiter (WWFA) mit Bandbreitenreservierung. Das Verfahren zum Reservieren von Bandbreite einer gegebenen Priorität unter Verwendung des WWFA zur Arbitrierung der Bandbreite zwischen virtuellen Verbindungen zwischen Eingangs- und Ausgangsports, wobei jede virtuelle Verbindung eine oder mehrere Prioritäten unterstützt und einer Arbitrierungseinheit (AU) des WWFA entspricht, umfasst das Durchführen von mindestens einem Arbitrierungsdurchgang einer Wellenfront des WWFA, wobei AUs mit einer reservierten Bandbreitenanforderung einer gegebenen Priorität und einem reservierten Bandbreitenguthaben der gegebenen Priorität um die mit der Wellenfront verbundene Bandbreite konkurrieren.
  • US 2014 / 0 098 818 A1 beschreibt Verarbeitungstechniken in einem Netzwerk-Switch zum Reduzieren der Latenz bei der Zustellung von Datenpaketen an einen Empfänger. Zu den Verarbeitungstechniken gehört ein interner Cut-Through. Der interne Cut-Through kann Eingangsportpuffer umgehen, indem empfangene Paketdaten direkt an einen Ausgangsport weitergeleitet werden. Am Ausgangsport werden die Paketdaten zur Verarbeitung und Kommunikation aus dem Switch gepuffert.
  • EP 2 134 037 A1 beschreibt ein Verfahren zum Planen eines Paketdatenflusses zwischen Eingangs- und Ausgangsleitungskarten eines Vermittlungsknotens, wobei eine synchrone Planung zwischen allen Paaren von Eingangs- und Ausgangsleitungskarten implementiert wird, wobei eine solche synchrone Planung mit einer asynchronen Planung kombiniert wird, die auf Anforderung durch eine Eingangsleitungskarte als eine Funktion von Verkehrslastbedingungen in einer Warteschlange der entsprechenden Eingangsleitungskarte aktiviert wird.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Maschine bereitzustellen, welche die beim Stand der Technik auftretenden Probleme lösen.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1, eine Maschine mit den Merkmalen des Anspruchs 7 und eine Maschine mit den Merkmalen des Anspruchs 10 gelöst.
  • Vorteilhafte Weiterbildungen ergeben sich aus den abhängigen Unteransprüchen.
  • Zweckmäßigerweise umfasst der verteilte Bandbreitengewährungsmechanismus einen Store-and-Forward-Mechanismus (Speichern-und-Weiterleiten-Mechanismus) zur Bandbreitenguthabengewährung; und das Verfahren umfasst ferner die folgenden Schritte:
    • Verfolgen, mittels eines Eintrittswarteschlangenplaners, von in dem Eingangspaketpuffer definierten, aktiven virtuellen Ausgangswarteschlangen (VoQs, Virtual Output Queues).
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte:
    • Absetzen einer Bandbreitenguthaben-Anforderungsnachricht an das Austrittskachelelement für eine ausgewählte, aktive VoQ unter den aktiven VoQs.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte: Bestimmen, mittels eines Austrittswarteschlangenplaners, dass als Reaktion auf die Bandbreitenguthaben-Anforderungsnachricht der ausgewählten, aktiven VoQ Bandbreite gewährt wird; und
    Kommunizieren einer Guthabengewährungsnachricht durch die Switching Fabric an das Eintrittskachelelement.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte: Empfangen der Guthabengewährungsnachricht an dem Eintrittswarteschlangenplaner; und
    Übertragen eines Warteschlangen-Entnahmebefehls von dem Eintrittswarteschlangenplaner an einen Eintrittskontextmanager.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte: Hinzufügen, mittels des Eintrittskontextmanagers, eines Warteschlangen-Entnahmekontexts für die ausgewählte, aktive VoQ als Reaktion auf den Warteschlangen-Entnahmebefehl;
    Absetzen eines Pufferlesebefehls, der so konfiguriert ist, dass er das Entnehmen von Bytes aus der ausgewählten, aktiven VoQ bewirkt; und
    Übermitteln der Bytes durch die Switching Fabric an das Austrittskachelelement.
  • Zweckmäßigerweise umfasst der verteilte Bandbreitengewährungsmechanismus einen Cut-Through-Gewährungsmechanismus (Durchreich-Gewährungsmechanismus); und das Verfahren umfasst ferner die folgenden Schritte:
    • Empfangen einer Paketzelle in einem Sammelpuffer in dem Eintrittskachelelement; und
    • Treffen einer eintrittseitigen Entscheidung darüber, ob die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement geeignet ist.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte:
    • wenn die Paketzelle eintrittseitig geeignet ist, Übertragen einer Cut-Through-Anforderungsnachricht durch die Switching Fabric an das Austrittskachelelement.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte: Empfangen der Cut-Through-Anforderungsnachricht an dem Austrittskachelelement; und
    Treffen einer austrittseitigen Entscheidung darüber, ob die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement geeignet ist.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte:
    • wenn die Paketzelle austrittseitig geeignet ist, Übertragen einer Cut-Through-Gewährungsnachricht durch die Switching Fabric zurück an das Eintrittskachelelement.
  • Zweckmäßigerweise umfasst das Verfahren ferner die folgenden Schritte:
    • Empfangen der Cut-Through-Gewährungsnachricht an dem Eintrittskachelelement und Übertragen der Paketzelle an eine Cut-Through-Warteschlange in der Switching Fabric.
  • Zweckmäßigerweise umfasst die Schaltungsanordnung zur Bandbreitenzuteilung Folgendes:
    • einen Cut-Through-Manager für das Eintrittskachelelement, der so konfiguriert ist, dass er für die Nutzdaten der einzelnen Paketzellen ein eintrittseitiges Cut-Through-Eignungskriterium auswertet.
  • Zweckmäßigerweise überprüft das eintrittseitige Cut-Through-Eignungskriterium, ob das gesamte empfangene Paket für einen Ausgangs-Port bestimmt ist, den es mit dem ankommenden Paket gemeinsam hat.
  • Zweckmäßigerweise umfasst die Schaltungsanordnung zur Bandbreitenzuteilung Folgendes:
    • einen Cut-Through-Manager für das Austrittskachelelement, der so konfiguriert ist, dass er für die Nutzdaten der einzelnen Paketzelle ein austrittseitiges Cut-Through-Eignungskriterium auswertet.
  • Zweckmäßigerweise überprüft das austrittseitige Cut-Through-Eignungskriterium, ob ein vorhandenes Paket in dem Ausgangspaketpuffer für einen Ausgangs-Port bestimmt ist, den es mit dem ankommenden Paket gemeinsam hat.
  • Zweckmäßigerweise umfasst die Schaltungsanordnung zur Bandbreitenzuordnung einen Eintrittswarteschlangenplaner, der so konfiguriert ist, dass er:
    • in dem Eingangspaketpuffer definierte aktive, virtuelle Ausgangswarteschlangen (VoQs) verfolgt;
    • eine Bandbreitenguthaben-Anforderungsnachricht für eine ausgewählte, aktive VoQ unter den aktiven VoQs an das Austrittskachelelement absetzt;
    • eine Guthabengewährungsnachricht empfängt; und
    • einen Warteschlangen-Entnahmebefehl von dem Eintrittswarteschlangenplaner an einen Eintrittskontextmanager überträgt, der so konfiguriert ist, dass er VoQs einplant, die aktiv an das Austrittskachelelement übertragen.
  • Zweckmäßigerweise umfasst die Schaltungsanordnung zur Bandbreitenzuordnung einen Austrittswarteschlangenplaner, der so konfiguriert ist, dass er:
    • als Reaktion auf die Bandbreitenguthaben-Anforderungsnachricht Bandbreite für die ausgewählte, aktive VoQ gewährt; und
    • eine Guthabengewährungsnachricht durch die Switching Fabric an das Eintrittskachelelement kommuniziert.
  • Zweckmäßigerweise umfasst die Maschine ferner Folgendes:
    • eine zwischen dem Eintrittskachelelement und dem Austrittskachelelement verteilte Schaltungsanordnung zur Bandbreitenzuteilung, wobei die Bandbreitenzuteilung so konfiguriert ist, dass sie:
      • über die Store-and-Forward-Bandbreiten-Guthabenzuteilung zum Übermitteln des gesamten empfangenen Pakets von dem Eingangspaketpuffer zu dem Ausgangspaketpuffer durch die Store-and-Forward-Puffer der Schaltungsanordnung für die Fabric-Pufferung entscheidet; und
      • über die Cut-Through-Bandbreitenzuteilung zum Übermitteln der Nutzdaten der Paketzelle von dem Eingangspaketpuffer zu dem Port-spezifischen Cut-Through-Puffer durch die Cut-Through-Puffer der Schaltungsanordnung für die Fabric-Pufferung entscheidet.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 zeigt ein Beispiel eines Kachelelements für eine Speicherverwaltungseinheit (MMU).
    • 2 zeigt eine Switch-Architektur.
    • 3 zeigt eine Ansicht der Switch-Architektur von 2, die so vergrößert ist, dass sie den Fluss von dem Eintritt zu dem Austritt durch die vollständige Netzkopplungsstruktur zeigt.
    • In 4 beginnt ein Beispiel einer Store-and-Forward-Paketverarbeitung.
    • In 5 wird das in 4 gezeigte Beispiel fortgesetzt.
    • In 6 wird das Beispiel von 4 und 5 fortgesetzt.
    • In 7 wird das Beispiel von 4 bis 6 fortgesetzt.
    • In 8 wird das Beispiel von 4 bis 7 fortgesetzt.
    • 9 zeigt die Switching Fabric.
    • 10 zeigt zusätzliche Einzelheiten der Switching Fabric.
    • 11 zeigt ein Beispiel der Austrittskachelelement-Verarbeitung für den Store-and-Forward-Fluss.
    • 12 zeigt Logik, die in einer Switch-Architektur implementiert werden kann.
    • 13 zeigt eine verteilte Pufferungs-Switch-Architektur, die das Durchreichen unterstützt.
    • 14 bis 18 zeigen ein Beispiel für das Durchreichen für SoP-, MoP- und EoP-Zellen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Cloud-Netzwerke stellen hohe Ansprüche an eine Switch-Architektur. Die unten beschriebene Architektur hilft Cloud-Netzwerken bei der Erfüllung von Bandbreitenanforderungen in dem Bereich von mehreren Terabit. Diese Architektur hilft bei der Vermeidung von hohen Kosten und von Speichern mit hoher Stromaufnahme, ohne dass eine umfangreiche Umgestaltung der Architektur und ein erneuter Entwurf von Hauptkomponenten in der Datenverkehrsverwaltung und bei den Paketpufferfunktionen notwendig ist. Die Architektur implementiert einen verteilten Algorithmus, der ein skalierbares Vermitteln mit niedriger Latenzzeit für hohe Bandbreiten vorsieht, und sieht für die Paketübermittlung von dem Eintritt zu dem Austritt sowohl den Store-and-Forward-Modus (SAF) als auch den Cut-Through-Modus (CT) vor.
  • Die Architektur erzielt eine Skalierung unter Verwendung eines verteilten Ansatzes. Eine Pufferung ist sowohl an dem Eintritt und dem Austritt als auch in der Fabric-Kopplungsstruktur zwischen dem Eintritt und dem Austritt vorgesehen. Die Pufferung ist mit einem intelligenten Algorithmus mit niedriger Latenzzeit zur Koordination der Übermittlungen von dem Eintritt zu dem Austritt kombiniert. Bei einigen Implementierungen erfüllt die Architektur unter Verwendung einzelner Port-Speicher hohe Bandbreitenvorgaben. Die Architektur kann unter Verwendung von lediglich der halben Schaltungsfläche wenigstens die gleiche Menge von angekündigtem Paketpuffer vorsehen wie frühere Vorrichtungen. Aus einer anderen Perspektive gesehen, stellt die Architektur die doppelte Pufferung bei gleichen Schaltungsflächenkosten bereit.
  • 1 zeigt ein Beispiel eines Kachelelements für eine Speicherverwaltungseinheit (MMU) 100 in Kommunikation mit einer internen Fabric-Schnittstelle (IFI) 102. Instanzen des MMU-Kachelelements 100 können so oft wie gewünscht repliziert werden, um die Kapazität des Switches zu erweitern. Wenn ferner die mehreren Instanzen in eine einzelne integrierte Schaltung eingebaut werden, erzielt die sich ergebende Switch-Architektur durch eine verteilte Pufferungsarchitektur, die sowohl den SAF- als auch den CT-Modus unterstützt, eine Paketübermittlung mit äußerst niedrigen Latenzzeiten. Das MMU-Kachelelement 100 kann, um nur ein Beispiel zu nennen, Zellen mit 1 Zelle/Takt an die IFI 102 senden und Zellen mit 1 Zelle/Takt von der IFI 102 empfangen. Das MMU-Kachelelement 100 weist eine Eintritts-MMU oder ein Eintrittskachelelement 104 und eine Austritts-MMU oder ein Austrittskachelelement 106 auf.
  • Das Eintrittskachelelement 104 weist einen Kern 108 mit einem Paketeingangspuffer 110 auf, der einen der mehreren verteilten Puffer in der Switch-Architektur bereitstellt. Die Architektur kann virtuelle Ausgangswarteschlangen (VoQs) in dem Eingangspuffer 110 definieren, wenn mehrere Kachelelemente vorhanden sind, um eine Unterscheidung zwischen mehreren Paketen auf verschiedenen Kachelelementen zu treffen, die potenziell in derselben Warteschlange nach außen gehen. Der Kern 108 weist außerdem eine Schaltungsanordnung zum Einreihen in eine Warteschlange (ENQ) 112 (um zum Beispiel Zellen in dem Eingangspuffer 110 zu platzieren), eine Schaltungsanordnung zum Entnehmen aus einer Warteschlange (DEQ) 114 (um zum Beispiel Zellen aus dem Eingangspuffer zu entfernen) und eine Schaltungsanordnung zur Warteschlangensteuerung 116 auf (um zum Beispiel das Entnehmen von Paketen zu steuern, um zum Beispiel aus einer bestimmten Ausgangswarteschlange, die mehrere auf eine Vermittlung wartende Pakete gepuffert hat, das Paket ganz oben in der Warteschlange (ToQ) auszuwählen). Der Kern 108 weist außerdem eine Schaltungsanordnung zur Zugangskontrolle (ADM) 118, eine Schaltungsanordnung zur Zellenverknüpfung 120 und eine Schaltungsanordnung zur Paketverknüpfung 122 auf. Das Eintrittskachelelement 104 weist ferner eine interne Fabric-Planung über einen Eintrittskontextmanager (ICM) 124 und einen Eintrittswarteschlangenplaner (IQS) 126 auf, der zum Beispiel über die Schnittstelle (IF) von einem Austrittskachelelement Guthabengewährungsnachrichten empfangen kann.
  • Das Austrittskachelelement 106 weist einen Austrittsguthabenplaner (ECS) 128 auf. Der ECS 128 kann Warteschlangenstatusnachrichten (QSMs) 130 empfangen, beispielsweise Bandbreitenguthaben-Anforderungsnachrichten und Bandbreitenstatus-Aktualisierungsnachrichten von dem Eintrittskachelelement, und als Reaktion darauf Bandbreitenguthaben zuteilen. Das Eintrittskachelelement 104 kann zum Beispiel eine Bandbreitenguthaben-Anforderungsnachricht senden, um die IQS-Schaltungsanordnung 126 zu veranlassen, an ein beliebiges verbundenes Austrittskachelelement zu melden, das eine bestimmte VoQ EIN bzw. aktiv ist und dass die VoQ mit einer Geschwindigkeit, die über eine vorkonfigurierte, zum Beispiel über eine Konfigurationsschnittstelle erstellte QoS-Richtlinie festgelegt wurde, Guthaben empfangen soll. Das Eintrittskachelelement 104 kann zum Beispiel eine Bandbreitenstatus-Aktualisierungsnachricht an ein beliebiges verbundenes Austrittskachelelement senden, um die IQS-Schaltungsanordnung 126 zu veranlassen, zu melden, dass eine bestimmte VoQ AUS bzw. inaktiv ist, wodurch sie angibt, dass die VoQ nicht weiterhin Guthaben empfangen soll, weil die VoQ entweder über einen Guthabenüberschuss und/oder über keine zu übertragenden Daten mehr verfügt. Das Eintrittskachelelement 104 kann Guthabengewährungsnachrichten 132 von dem Austrittskachelelement 106 empfangen. Es sei angemerkt, dass es sich bei den Guthabenanforderungsnachrichten und Guthabengewährungsnachrichten insbesondere um Bandbreitenguthaben-Anforderungsnachrichten und Bandbreitenguthaben-Gewährungsnachrichten handelt. Das heißt, dass diese Nachrichten von der auf den Ausgangs-Ports verfügbaren Bandbreite Bandbreitenanteile anfordern und zuteilen.
  • Das Austrittskachelelement 106 weist außerdem einen Kern 134 mit einem Paketausgangspuffer 136 auf, der einen weiteren Punkt für eine verteilte Pufferung in der Switch-Architektur vorsieht. Der Kern 134 weist außerdem eine Schaltungsanordnung zum Einreihen in eine Warteschlange (ENQ) 138 auf (um zum Beispiel Zellen in dem Eingangspuffer 136 zu platzieren), eine Schaltungsanordnung zum Entnehmen aus einer Warteschlange (DEQ) 140 (um zum Beispiel Zellen aus dem Eingangspuffer 136 zu entfernen) und eine Schaltungsanordnung zur Warteschlangensteuerung 142 (um zum Beispiel das Entnehmen von Paketen zu steuern, um zum Beispiel in einer bestimmten Ausgangswarteschlange, die mehrere auf eine Übertragung durch einen Ausgangs-Port wartende Pakete gepuffert hat, das Paket ganz oben in der Warteschlange (ToQ) auszuwählen). Der Kern 134 weist außerdem eine Schaltungsanordnung zur Zugangskontrolle (ADM) 144, eine Schaltungsanordnung zur Zellenverknüpfung 146 und eine Schaltungsanordnung zur Paketverknüpfung 148 auf. Das Austrittskachelelement 106 weist ferner einen Austrittsplaner mit einer Schaltungsanordnung zur Warteschlangenplanung 150 und einer Schaltungsanordnung zur Port-Planung 152 auf. Die Schaltungsanordnung zur Warteschlangenplanung 150 und die Schaltungsanordnung zur Port-Planung 152 planen die Übertragung von Zellen aus den Warteschlangen in dem Ausgangspuffer 136 durch die mit dem Austrittskachelelement 106 verbundenen Ports.
  • Es sei angemerkt, dass die IFI 102 eine Schnittstelle zu einer Vermittlungskopplungsstruktur 154 definiert, die Eintrittskachelelemente mit Austrittskachelelementen verbindet. Bei der Vermittlungskopplungsstruktur 154 kann es sich um ein vollständiges Netz handeln, das in der Lage ist, einen beliebigen Eingang mit einem beliebigen Ausgang zu verbinden, und mit einer oder mehreren IFIs kann sie eine Switching Fabric ausbilden. Die IFI 102 kann ferner einen gesonderten Pfad zum Fabric-Steuerempfangselement (FCR) 156 (zum Beispiel für Steuernachrichten) und einen Pfad zum Fabric-Datenempfangselement (FDR) 158 (zum Beispiel einschließlich der in 10 und 13 bis 18 beschriebenen SAF-Puffer 1004 und CT-Puffer 1320) aufweisen. Die IFI 102 (und folglich die Switching Fabric) können ferner eine unten im Einzelnen beschriebene Pufferung aufweisen, die eine weitere Instanz von verteilter Pufferung innerhalb der gesamten Switch-Architektur implementiert. Die Switch-Architektur kann weitere Kopplungstopologien implementieren. Die Vermittlungskopplungsstruktur 154 kann in Abhängigkeit von Implementierungsparametern, zum Beispiel des physikalischen Wirkungsgrads, ausgelagert werden. Zum Beispiel kann eine neue Topologie, zum Beispiel ein Ring, bei bestimmten Implementierungen (zum Beispiel einer Implementierung mit sehr hoher Bandbreite und 10 bis 20 TBit/s oder mehr) leistungsfähiger sein.
  • Die Architektur wird skaliert, indem die Datenverkehrsverwaltungskomponenten in kachelartigen Strukturen gruppiert werden. Die Kachelstrukturen können repliziert und miteinander gekoppelt werden, um unter Verwendung des unten beschriebenen Bandbreitenplanungsalgorithmus zur Kopplung mit niedriger Latenzzeit Übermittlungen von dem Eintritt zu dem Austritt durchzuführen. Die Bandbreitenskalierung kann durch Hinzufügen mehrerer Kachelelemente zur Erzielung einer höheren Bandbreite erreicht werden. Ein vorteilhaftes Ergebnis ist, dass es mit nur geringfügigen physischen Änderungen möglich sein kann, die Bandbreite auf mehrere Terabit pro Sekunde zu skalieren.
  • 2 zeigt eine Switch-Architektur 200. Die Switch-Architektur 200 weist sechs Instanzen 202, 204, 206, 208, 210 und 212 des MMU-Kachelelements 100 auf. Die MMU-Kachelelemente sind durch die Switching Fabric miteinander verbunden. Jedes MMU-Kachelelement kann eine bestimmte Anzahl von Ports unterstützen, zum Beispiel 4 Ports pro Kachelelement bei einem Switch mit 24 Ports. 3 zeigt eine Ansicht 300 der Switch-Architektur 200, die so vergrößert ist, dass sie den Fluss von dem Eintritt zu dem Austritt durch die vollständige Netzkopplungsstruktur zeigt. Die Switch-Architektur 200 / 300 kann auf einem einzelnen Rohchip gefertigt sein.
  • Die Switch-Architektur 200 / 300 verwendet ein einzigartiges Pufferungsmodell. Das Pufferungsmodell verwendet zum Speichern von Paketen keinen einzelnen, gemeinsam genutzten Speicher oder Kreuzpunktspeicher. Stattdessen verwendet das Pufferungsmodell mehrere voneinander abgegrenzte und verteilte Pufferungspunkte. Ein Pufferungspunkt ist der Eingangspuffer 110. Der Eingangspuffer 110 stellt einen primären Pufferungspunkt für ankommende Pakete bereit, der sich in dem Kachelelement befindet, das den Eintritts-Port enthält, von dem das Paket empfangen wurde. Der Ausgangspuffer 136 stellt einen weiteren Pufferungspunkt bereit. Der Eingangspuffer 136 stellt einen sekundären Pufferungspunkt für abgehende Pakete bereit, der sich in demselben Kachelelement befindet, das den Austritts-Port enthält, von dem aus das Paket übertragen wird.
  • In dem Eingangspuffer 110 gepufferte Pakete sind mit VoQs verknüpft. Jeder Eintritts-Datenverkehrsmanager führt eine Arbitrierung über die Menge von nicht leeren VoQs für die Übertragung an einen Austritts-Datenverkehrsmanager (ETM) durch. Sobald Pakete an dem ETM empfangen werden, können sie vor der Übertragung an einen Austritts-Port erneut gepuffert werden. Die Pufferung an dem Austritts-Port kann aus mehreren Gründen vorgesehen sein, unter anderem: Flusskontrolle, zum Beispiel in dem Fall, dass der Austritts-Port oder die Warteschlange, von dem bzw. der aus das Paket abgehen muss, aktuell einer Flusskontrolle unterworfen ist; Vermeidung eines Unterlaufs, so können zum Beispiel Pakete gepuffert werden, bis eine EoP-Zelle an dem Austrittskachelelement empfangen wird, um einen Unterlauf zu vermeiden; und eine Konkurrenzsituation an einem Austritts-Port, so können zum Beispiel mehrere Pakete von verschiedenen Eintrittskachelelementen mit potenziell unterschiedlichen QoS-Anforderungen an einem Austritts-Port ankommen, und das Verknüpfen von Paketen mit einer Austrittswarteschlange und anschließendes Durchführen einer Arbitrierung unter Verwendung des Austritts-Port-Planers können solche Konflikte lösen.
  • In 4 beginnt ein Beispiel einer SAF-Paketverarbeitung. In 4 führt die ADM-Schaltungsanordnung 118 bei ankommenden Zellen eine Zugangskontrolle durch (402). In dieser Rolle kann die ADM-Schaltungsanordnung 118 entscheiden, ob Pakete angenommen oder gelöscht werden sollen. Im Rahmen dieser Bestimmung überprüft die ADM-Schaltungsanordnung 118 Pufferschwellenwerte sowohl auf der Eingangs- als auch auf der Ausgangsseite. Auf der Eingangsseite kann die ADM-Schaltungsanordnung 118 je nach Eingangs-Port, der das Paket empfangen hat, eine Prüfung anhand von Eingangsschwellenwerten durchführen, um sicherzustellen, dass der Eingangspuffer 110 von den Eingangs-Ports gemeinsam genutzt wird. Auf der Ausgangsseite kann die ADM-Schaltungsanordnung 118 je nach Ausgangs-Port analog eine Prüfung anhand von Ausgangsschwellenwerten durchführen, um sicherzustellen, dass der Eingangspuffer 110 allen Ausgangs-Ports Pakete bereitstellt, anstatt nur einen oder einige wenige ausgelastete Ausgangs-Ports zu bedienen.
  • In dem Beispiel von 4 verwendet die Schaltungsanordnung zum Einreihen in eine Warteschlange 112 eine mittels der Eintritts-Pipeline (IP) bereitgestellte Warteschlangen-ID, um eingehende Pakete mit einer virtuellen Eintritts-Ausgangswarteschlange (VOQ) (404) zu verknüpfen. Zusätzlich wird ein Warteschlangen-Einreihungsbericht an die IQS-Schaltungsanordnung 126 gesendet, sobald das Paket mit der VOQ verknüpft wurde (406).
  • In 5 wird das in 4 gezeigte Beispiel fortgesetzt. Die IQS-Schaltungsanordnung 126 verarbeitet den Warteschlangen-Einreihungsbericht nach dessen Empfang (502). Die IQS-Schaltungsanordnung 126 verfolgt außerdem den Warteschlangen-Guthabenzustand, um zu bestimmen, ob von einem Austrittskachelelement Guthaben angefordert werden sollen (504). Die IQS-Schaltungsanordnung 126 in dem Eintrittskachelelement 104 kann zum Beispiel einen Bandbreitenguthaben-Anforderungsnachrichtenbericht an das Austrittskachelelement senden, wo sich der Ziel-Port befindet, der besagt, dass eine bestimmte VoQ EIN bzw. aktiv ist und dass die VoQ mit einer Geschwindigkeit, die über eine vorkonfigurierte, zum Beispiel über eine Konfigurationsschnittstelle erstellte QoS-Richtlinie festgelegt wurde, Guthaben empfangen soll. Die IQS-Schaltungsanordnung 126 in dem Eintrittskachelelement 104 kann außerdem eine Bandbreitenstatus-Aktualisierungsnachricht an ein Eintrittskachelelement senden, die besagt, dass eine bestimmte VoQ AUS bzw. inaktiv ist, wodurch sie angibt, dass die VoQ nicht weiterhin Guthaben empfangen soll, weil die VoQ entweder über einen Guthabenüberschuss und/oder über keine zu übertragenden Daten mehr verfügt.
  • In 6 wird die Interaktion 600 zwischen bestimmten Architekturelementen gezeigt und das Beispiel von 4 und 5 fortgesetzt. Wenn VoQs aktiv sind, empfängt die IQS-Schaltungsanordnung 126 Berichte zum Einreihen in eine Warteschlange. Die IQS-Schaltungsanordnung 126 bestimmt, wann Bandbreitenguthaben angefordert werden sollen. Um Bandbreitenguthaben anzufordern, sendet die IQS-Schaltungsanordnung 126 Warteschlangenstatusnachrichten 602 an den ECS 128. Der ECS 128 teilt Guthaben zu und schickt Bandbreitenguthaben-Gewährungsnachrichten 604 an die IQS-Schaltungsanordnung 126 zurück.
  • In 7 wird die Interaktion 700 zwischen bestimmten Architekturelementen gezeigt und das Beispiel von 4 bis 6 fortgesetzt. In 7 hat die IQS-Schaltungsanordnung 126, zum Beispiel über die Bandbreitenguthaben-Gewährungsnachricht 604, Bandbreitenguthaben empfangen. Die IQS-Schaltungsanordnung 126 führt eine Liste 702 von VoQs, die geeignet sind, ihre Guthaben zu verwenden, zum Beispiel die VoQs, die Guthaben empfangen haben und über Zellen zum Übertragen verfügen. Die IQS-Schaltungsanordnung 126 wählt eine Warteschlange aus und sendet einen Befehl zum Entnehmen aus einer Warteschlange 704 an den ICM 124. Der Befehl zum Entnehmen aus einer Warteschlange 704 kann beispielshalber die Warteschlange und die Anzahl von Bytes angeben, die aus dieser Warteschlange entnommen werden können.
  • Wie in 7 gezeigt, führt die ICM-Schaltungsanordnung 124 für eine beliebige Anzahl ,n' von Warteschlangen Kontexte zum Entnehmen aus einer Warteschlange 706. Bei einem Kontext zum Entnehmen aus einer Warteschlange handelt es sich um eine Darstellung der jeweiligen VoQ, die eine Übertragung von dem Eintritt zu dem Austritt durchführt. Die ICM-Schaltungsanordnung 124 fügt als Reaktion auf die Befehle zum Entnehmen aus einer Warteschlange 704 Warteschlangen zu dem Kontext hinzu. In der ICM-Schaltungsanordnung 124 wählt ein Reihum-Planer (RR-Planer) 708 die nächste VoQ zum Übertragen aus und führt die Bedienung dieses Kontexts für diese VoQ fort, bis der ICM 124 die mittels des Befehls zum Entnehmen aus einer Warteschlange 704 angegebene Anzahl von Bytes verarbeitet hat oder bis die EoP-Zelle des Pakets übertragen wurde. Als Reaktion auf das Auswählen der nächsten zu bedienenden Warteschlange sendet die ICM-Schaltungsanordnung 124 Pufferlesebefehle 710 zurück an den Eintrittskern 108, um das Abrufen von Bytes aus der angegebenen Warteschlange des Eingangspuffers 110 und die Übertragung dieser Bytes an die Switching Fabric zu bewirken.
  • Es sei angemerkt, dass die IQS-Schaltungsanordnung 126 eine Liste 702 der VoQs führt, die geeignet sind, Pakete von einem Eintrittskachelelement zu einem Austrittskachelelement zu übermitteln. Bei einer Implementierung ist eine VoQ geeignet, Pakete zu übertragen, wenn die VoQ nicht leer ist und die VoQ Bandbreitenguthaben empfangen hat. In jedem Eintrittskachelelement kann es mehrere geeignete VoQs mit Paketen geben, die für eine beliebige Anzahl von Austrittskachelelementen bestimmt sind. Die IQS-Schaltungsanordnung 126 kann die Planung jeder geeigneten VoQ für eine potenzielle Auswahl durchführen. Bei einer Implementierung handelt es sich bei der Planung um eine Planung mit mehreren Faktoren: strikte Priorität (SP) (um zum Beispiel das Paket mit der höheren Priorität gegenüber einem Paket mit einer niedrigeren Priorität zu wählen) mit nachfolgender RR-Auswahl. Das heißt, dass die IQS-Schaltungsanordnung 126 Warteschlangenlisten mit hoher Priorität (HP) und Warteschlangenlisten mit (relativ) niedrigerer Priorität (LP) führen und in einer ersten Planungsrunde die Auswahl zwischen diesen per Austrittskachelelement treffen kann. Bei Auswahl mit strikter Priorität wird ein HP-Paket gegenüber einem LP-Paket bevorzugt. Dann trifft die RR-Planung als zweite Runde eine Auswahl unter den in der ersten Runde gewählten Paketen. Die IQS-Schaltungsanordnung 126 erstellt den Befehl zum Entnehmen aus einer Warteschlange 704, um die als Ergebnis der zweiten Runde der Planung getroffene Wahl widerzuspiegeln.
  • In 7 generiert der ECS 128 Bandbreitenguthaben für ein ganzes Kachelelement. Zum Beispiel kann es für 1,6 TBit/s Bandbreite 16 Ports, jeweils mit 100 GBit/s, geben. Der ECS 128 würde dann 1,6 TBit/s Bandbreitenguthaben generieren, die unter 16 Ports mit jeweils 100 GBit/s verteilt werden. Optional kann der ECS 128 Guthaben mit einer schnelleren Geschwindigkeit als der theoretischen maximalen Bandbreite generieren. Zum Beispiel kann der ECS 128 Guthaben mit 2% Beschleunigung (oder gemäß einem anderen konfigurierbaren Beschleunigungsparameter) generieren, zum Beispiel mit 102 GBit/s pro Port anstatt 100 GBit/s pro Port. Die beschleunigte Guthabengeschwindigkeit kann helfen, das Problem anzugehen, dass der Algorithmus zur Guthabenausgabe insofern approximativ ist, als der Algorithmus nicht genau weiß, wie viele Bytes des gewährten Guthabens verbraucht werden. In einigen Instanzen werden nur Teilmengen eines gewährten bestimmten Guthabens verbraucht, zum Beispiel weil die EoP-Zelle erreicht wurde, bevor das Bandbreitenguthaben aufgebraucht war. Im Wesentlichen wirkt sich die beschleunigte Guthabengeschwindigkeit auf die Übergabe von ungenutzten Bandbreitenguthaben an VoQs mit zu übermittelnden Zellen aus. Wie in 7 gezeigt, kann der ECS 128 für jeden Ausgangs-Port Listen von Service-Klassen (CoS) pro Eintrittskachelelement führen, zum Beispiel die CoS-Liste 712. Das heißt, dass jeder Port mehrere verschiedene CoSs aufweisen kann und dass jede CoS mehrere VoQs aufweisen könnte, die versuchen, mit derselben CoS zu senden. Die RR-Planer (zum Beispiel der RR-Planer 714) in dem ECS 128 treffen als erste Auswahlstufe eine Auswahl zwischen den Eintrittskachelelementen für eine bestimmte CoS für einen bestimmten Ausgangs-Port.
  • Der ECS 128 kann in einer zweiten Auswahlstufe eine Auswahl zwischen den verschiedenen CoSs für jeden Port treffen. Bei der zweiten Auswahlstufe kann es sich um eine gewichtete, verteilte RR-Stufe (WDRR) mit strikter Priorität (SP+WDRR) 715 handeln. Wenn zum Beispiel an die CoSs für einen bestimmten Port verschiedene Prioritäten vergeben wurden, kann SP den CoSs mit der höchsten Priorität Vorrang einräumen. Dann kann die WDRR gemäß den Warteschlangen zugewiesenen Gewichtungen eine beliebige Anzahl derjenigen auswählen, welche die gleiche Priorität haben können. Das heißt, dass die SP+WDRR-Stufe Gewichtungszuweisungen berücksichtigt, um Bandbreitenguthaben anteilig anhand der zugewiesenen Gewichtungen zu verteilen, während sie strikten Vorrang gemäß der Priorität einräumt, wenn CoSs mit unterschiedlicher Priorität für einen bestimmten Ausgangs-Port um Bandbreite konkurrieren. Es sei jedoch angemerkt, dass andere Auswahlmechanismen als SP+WDRR implementiert werden können, einschließlich nur SP, nur WDRR, weitere Typen von RR und weitere Typen von Zellenplanern im Allgemeinen. Demgemäß kann jeder der Planer in der Switch-Architektur mit anderen als den gezeigten Auswahlmechanismen implementiert werden, und folglich kann die Konstruktion der Switch-Architektur je nach gewünschter Implementierung erheblich variieren.
  • Als spezifisches Beispiel wird angenommen, dass für einen Port 8 CoS-Warteschlangen (CoS 1-8) vorhanden sind. CoS 8 und CoS 7 sind SP-Warteschlangen, und die übrigen CoSs (CoS 1-6) sind Warteschlangen mit niedrigerer Priorität, von denen jede eine vorkonfigurierte Gewichtung aufweist. In diesem Fall wählt der ECS-Planer 128 zunächst CoS 8 aus, wenn sie nicht leer ist. Falls CoS 8 leer ist, wählt der Planer CoS 7 aus, wenn sie nicht leer ist. Nur wenn sowohl COS 8 als auch COS 7 leer sind, trifft der Planer eine Auswahl unter CoS 1-6, was dann in einem Verhältnis gemäß ihren konfigurierten Gewichtungen erfolgt.
  • Der Kachelelementplaner 716 implementiert eine dritte Stufe in dem ECS 128. Der Kachelelementplaner 716 arbitriert die Guthabenzuteilung unter den Ports eines bestimmten Austrittskachelelements. Der Kachelelementplaner 716 teilt Gesamtbandbreitenguthaben zu, um die konfigurierte Port-Geschwindigkeit jedes Ports einzuhalten. Anders ausgedrückt kann der Kachelelementplaner 716 als Reaktion auf eine feste Gewichtung für den jeweiligen Port Guthaben zuteilen. Hierzu kann der Kachelelementplaner 716 einen Kalender mit Port-Einträgen führen, die gefüllt werden, um Guthaben anzugeben, die den Ports gewährt wurden, um ihre Port-Geschwindigkeiten einzuhalten, zum Beispiel kann ein Port mit 100 GBit/s doppelt so viele Kalendereinträge aufweisen wie ein Port mit 50 GBit/s, wobei der ECS 128 eine feste Anzahl von Bandbreitenguthaben pro Kalendereintrag generiert.
  • In 8 wird das obige Beispiel fortgesetzt und gezeigt, dass der Eintritts-Kern 108 den Pufferlesebefehl 710 verarbeitet (802). Diesbezüglich aktualisiert die ADM-Schaltungsanordnung ihre Verfolgung der bedienten Warteschlangen für die Zwecke der Zugangskontrolle (804). Der Eintritts-Kern 108 entnimmt, zum Beispiel über die Schaltungsanordnung zum Entnehmen aus einer Warteschlange 114, die in dem Pufferlesebefehl 710 angegebenen Zellen/Bytes (806) aus der Warteschlange. Die Schaltungsanordnung zum Entnehmen aus einer Warteschlange 114 übergibt die aus der Warteschlange entnommenen Bytes zur Übertragung an das geeignete Austrittskachelelement an die Switching Fabric (808).
  • 9 zeigt eine Ansicht 900 der Switching Fabric 901 mit einer vollständigen Netzkopplungsstruktur 902. In 9 empfängt die Switching Fabric 901 eine Zelle (950). Die Switching Fabric 901 vermittelt die Zelle über die vollständige Netzkopplungsstruktur 902 an das entsprechende Austrittskachelelement (952). Die Switching Fabric 901 kann die vollständige Netzkopplungsstruktur 902 und eine beliebige Anzahl von IFIs 904 aufweisen. Jede IFI 904 weist ein FCR-Element und ein FDR-Element auf (siehe zum Beispiel 1).
  • 10 zeigt eine weitere Ansicht 1000 der Switching Fabric 901. 10 zeigt, dass es sich bei der Switching Fabric 901 um einen weiteren verteilten Pufferpunkt für die Switch-Architektur handelt. Die Eintrittskachelelemente sind durch die vollständige Netzstruktur 902 und interne Fabric-Schnittstellen (IFIs) 1002 mit den Austrittskachelelementen verbunden. Jede IFI 1002 weist ein FDR-Element 1007 und ein FCR-Element 1008 auf. Für Zellendaten weisen die IFIs für jedes Austrittskachelelement die Fabric-Puffer 1004 in dem FDR-Element 1007 auf. Bei den Fabric-Puffern 1004 kann es sich zum Beispiel um dem jeweiligen EintrittsKachelelement zugewiesene Übertragungs-FIFOs für die Kopplung handeln. Ein RR-Planer 1006 kann eine Auswahl zwischen den Fabric-Puffern 1004 treffen, um die nächste Zelle zu wählen, die an das mit dieser IFI verbundene Austrittskachelelement weitergeleitet werden soll. Wie oben angemerkt, können Steuersignale über gesonderte Steuerpfade in dem FCR-Element 1008 zwischen Schaltungselementen in der Switch-Architektur laufen, zum Beispiel über Signalpfade, die von den Pfaden, welche die Datenzellen durch die Switch Fabric durchlaufen, verschieden sind.
  • Anders ausgedrückt speichert die Switching Fabric 901 selbst eingehende Zellen in Puffern, zum Beispiel in FIFO-Speichern (First-In-First-Out) (1050). Genauer gesagt kann die Switching Fabric 901 die eingehenden Zellen in Daten-FIFOs pro Eintrittskachelelement speichern. Die Pufferung erleichtert die Auflösung von Konkurrenzsituationen, wenn mehrere Zellen gleichzeitig für ein bestimmtes Austrittskachelelement bestimmt sind. Wenn ein Pufferfüllstand einen vordefinierten Schwellenwert zum vorübergehenden Aussetzen überschreitet, kann die Switching Fabric 901 Flusskontrollnachrichten zurück zu den Eintrittskachelelementen senden, um anzufordern, dass die Eintrittskachelelemente die Zellenübertragung vorübergehend aussetzen. Die vorübergehende Aussetzung kann fortdauern, bis zum Beispiel die Switching Fabric 901 eine Wiederaufnahmenachricht sendet, wenn der Pufferstand unter einen vorbestimmten Schwellenwert zur Wiederaufnahme absinkt. Jeder FIFO kann, nur als Implementierungsbeispiel genannt, einen Schreib- und einen Lesevorgang pro Taktzyklus unterstützen. Zusätzlich bedient ein Planer die jeweiligen Switching-Fabric-Übertragungs-FIFOs für jedes Austrittskachelelement, zum Beispiel in Reihum-Folge mit zum Beispiel einer Geschwindigkeit von 1 Zelle pro Takt (1052).
  • 11 zeigt ein Beispiel 1100 der Austrittskachelelementverarbeitung für das oben begonnene SAF-Flussbeispiel. In 11 werden die Zellen für ein Paket von der Switching Fabric 901 empfangen, und die Schaltungsanordnung zur Paketverknüpfung 148 und die Schaltungsanordnung zur Zellenverknüpfung 146 verknüpfen die Pakete mit bestimmten, in dem Ausgangspuffer 136 definierten Warteschlangen. Die Schaltungsanordnung zur Warteschlangenplanung 150 und die Schaltungsanordnung zur Port-Planung 152 steuern die Warteschlangen- und Port-Auswahl für die Übertragung. Diese Planer steuern außerdem das Entnehmen von Paketen aus der Warteschlange des Ausgangspuffers 136 und die Übertragung des Pakets durch den ausgewählten Ausgangs-Port. Noch detaillierter führen die Schaltungsanordnung zur Warteschlangenplanung 150 und die Schaltungsanordnung zur Port-Planung 152 Funktionen aus, die jeweils parallel mit dem SP+WDRR-Planer 715 bzw. dem Kachelelementplaner 716 in dem ECS 128 ausgeführt werden.
  • Es sei angemerkt, dass es sich in dem oben unter Bezugnahme auf 4 bis 11 erörterten Beispiel um das Flussmodell SAF handelte. Das heißt, dass Paketzellen eintrittseitig so lange nicht durch die Switching Fabric 901 übermittelt werden, bis ein ganzes Paket an dem Eintrittskachelelement empfangen wurde. Analog werden austrittseitig Paketzellen so lange nicht aus einem Port heraus übermittelt, bis ein ganzes Paket an dem Austrittskachelelement empfangen wurde.
  • Die oben beschriebene Vermittlungsarchitektur sieht eine kombinierte Eingangs-/Ausgangswarteschlangen-Architektur vor. 12 zeigt Logik, die in der Vermittlungsarchitektur implementiert sein kann. Paketpuffer werden in dem Eintrittskachelelement, dem Austrittskachelelement und auch in der Switching Fabric selbst definiert (1202). Wenn ein Paket an einem Eintrittskachelelement ankommt, reiht das Eintrittskachelelement das Paket in eine spezifische, in dem Eingangspuffer 110 definierte VoQ ein (1204).
  • Die IQS-Schaltungsanordnung 126 in den Eintrittskachelelementen fordern von den Austrittskachelelementen Bandbreitenguthaben an (1206). In den Eintrittskachelelementen empfangen die ECSs 128 Bandbreitenanforderungsnachrichten und Bandbreitenstatus-Aktualisierungsnachrichten 602 von den Eintrittskachelelementen (1208). Die ECSs 128 teilen als Reaktion darauf Bandbreitenguthaben zu (1210) und schicken Bandbreitenguthaben-Gewährungsnachrichten 604 an die IQS-Schaltungsanordnung 126 zurück (1212).
  • Die IQS-Schaltungsanordnung 126 führt eine Liste geeigneter VoQs für die Übertragung (1214). Die IQS-Schaltungsanordnung 126 führt eine Planung zum Auswählen einer VoQ durch (1216) und sendet als Reaktion darauf einen Befehl zum Entnehmen aus einer Warteschlange 704 an die ICM-Schaltungsanordnung 124 in dem Eintrittskachelelement mit der gewählten VoQ (1218). Die ICM-Schaltungsanordnung 124 führt eine Liste von Kontexten zum Entnehmen aus einer Warteschlange für die bedienten Warteschlangen (1220) und führt eine Planung zum Auswählen der nächsten zu bedienenden VoQ durch (1222).
  • Für die nächste zu bedienende VoQ setzt die ICM-Schaltungsanordnung 124 einen Pufferlesebefehl 710 ab (1224). Das Eintrittskachelelement aktualisiert seine Warteschlangenstatistik und entnimmt als Reaktion auf den Pufferlesebefehl die entsprechenden Daten aus der Warteschlange des Eingangspuffers 110 (1226). Das Eintrittskachelelement sendet aus der Warteschlange entnommene Daten an die IFI, wo sie in einem Fabric-Puffer gespeichert werden (1228). Der Planer in der IFI wählt aus den Fabric-Puffern die nächsten abzurufenden Zellendaten (1230) und sendet die Zellendaten an das Austrittskachelelement (1232). Das Austrittskachelelement empfängt die Zellendaten (1234) und verknüpft die Zellendaten mit einer Warteschlange in dem Ausgangspuffer 136 (1236). Die Schaltungsanordnung zur Warteschlangenplanung 150 und die Schaltungsanordnung zur Port-Planung 152 wählen durch ausgewählte Ausgangs-Ports zu übertragende Zellen aus (1238) und bewirken das Abrufen und die Übertragung der Zellendaten von dem Ausgangspuffer 136 durch den ausgewählten Ausgangs-Port (1240). Die gesamte oben erwähnte Verarbeitung kann in einer replizierten, auf einem einzigen Chip gefertigten Kachelarchitektur durchgeführt werden. Die Lösung mit einem einzelnen Chip sieht äußerst hohe Integrationsdichten und eine sehr niedrige Latenzzeit vor, um Datenübertragungsgeschwindigkeiten in dem Terabit-Bereich zu unterstützen.
  • Die verteilte Pufferungs-Vermittlungsarchitektur unterstützt, wenn bestimmte, vordefinierte Bedingungen erfüllt sind, weitere Übertragungsmodi, einschließlich Durchreichen (Cut Through). Beim Durchreichen können Zellen von an einem Eintrittskachelelement eingehenden Paketen unmittelbar beginnen, durch die Switching Fabric 901 zu dem Austrittskachelelement zu laufen. Analog können Zellen von abgehenden Paketen vor dem vollständigen Empfang des abgehenden Pakets in dem Austrittskachelelement aus einem Ausgangs-Port übertragen werden. Bei einigen Implementierungen kann jedoch das Austrittskachelelement, wenn bestimmte Bedingungen erfüllt sind, eine SoP-CT-Zelle zurückhalten, bevor es die SoP-Zelle aus dem Ausgangs-Port überträgt. Zum Beispiel kann das Austrittskachelelement die SoP-Zelle so lange zurückhalten, bis wenigstens eine Schwellenwertanzahl zusätzlicher Zellen für das Paket an dem Austrittskachelelement angekommen ist. Dadurch können Unterlaufbedingungen an dem Ausgangs-Port vermieden werden. Weitere Einzelheiten des Cut-Through-Betriebs sind unten dargelegt.
  • 13 zeigt eine verteilte Pufferungs-Switch-Architektur 1300, die das Durchreichen (Cut-Through, CT) unterstützt. Die Switch-Architektur 1300 weist ein Eintrittskachelelement 1302, ein Austrittskachelelement 1304 und eine IFI 1306 auf. Das Eintrittskachelelement 1302 weist einen Sammelpuffer 1308, zum Beispiel einen Sammel-FIFO, und einen CT-Manager für das Eintrittskachelelement 1310 auf. Das Austrittskachelelement weist einen CT-Manager für das Austrittskachelelement 1312 und CT-Puffer pro Port 1314, zum Beispiel CT-FIFOs pro Port, auf. Es sei angemerkt, dass die CT-Puffer pro Port 1314 die Nutzdaten der Zellen selbst speichern können oder dass die CT-Puffer pro Port 1314 Zeiger auf in dem Ausgangspuffer 136 gespeicherte Nutzdaten der Zellen speichern können. Die IFI 1306 weist einen Fabric-CT-Manager 1316 und eine Schaltungsanordnung zur Pufferung 1318 auf.
  • Die Schaltungsanordnung zur Pufferung 1318 weist SAF-Fabric-Puffer pro Eintrittskachelelement 1004 (siehe 10) sowie CT-Puffer pro Eintrittskachelelement 1320 auf. Die Puffer 1004 und 1320 können SAF-Zellen bzw. CT-Zellen speichern. Dies ist jedoch nur eine Möglichkeit, um das Speichersystem zu organisieren, und es können andere Optionen implementiert werden. Zum Beispiel können Nutzdaten von SAF- und CT-Zellen in dem Paketpuffer 1326 gespeichert werden, und die SAF-Fabric-Puffer 1004 und die CT-Puffer 1320 können Warteschlangen implementieren, die Zeiger auf die Nutzdaten der Zellen in dem Paketpuffer 1326 speichern. Der RR-Planer 1006 trifft, wie oben beschrieben, eine Auswahl zwischen den SAF-Puffern 1004. Es sei jedoch angemerkt, dass die Schaltungsanordnung zur Pufferung 1318 mehrere Datenausgangsspuren definiert: Spur 0 und Spur 1. Die Schaltungsanordnung zur Pufferung 1318 ist in der Lage, zwei Zellen pro Takt auszugeben, jeweils eine auf Spur 0 und auf Spur 1. Spur 1 kann entsprechend der Auswahl mittels des Zellenplaners 1322 entweder eine SAF-Zelle oder eine CT-Zelle ausgeben. Spur 0 ist entsprechend der Auswahl mittels des Zellenplaners 1324 für CT-Zellen reserviert. Die beiden Ausgangsspuren stellen durch die IFI 1306 zusätzliche Bandbreitenkapazität bereit, insbesondere wird die Bandbreite für CT-Zellen verdoppelt. Das Bereitstellen mehrerer aus der IFI 1306 führender Spuren ergibt eine Beschleunigung für CT-Flüsse. Spur 0 und Spur 1 erlauben das Entnehmen von zwei Zellen pro Takt aus der Warteschlange der IFI 1306. Diese Beschleunigung hilft dabei, in der Switching Fabric den Aufbau von Warteschlangen zu vermeiden. Der Ausgangspuffer 136 kann dementsprechend mehrere Schreibe-Ports (zum Beispiel einen für jede Spur) aufweisen, um die mehreren Zellen pro Takt anzunehmen, die bei jedem Takt aus der Switching Fabric ankommen.
  • Der CT-Manager für das Austrittskachelelement 1312 handhabt die von der Switching Fabric empfangenen CT-Zellen. Insbesondere leitet der CT-Manager für das Austrittskachelelement CT-Zellen in die CT-Puffer pro Port 1314. Die Schaltungsanordnung zur Port-Planung 152 leitet das Entnehmen von CT-Zellen aus der Warteschlange der CT-Puffer pro Port 1314 und die Übertragung der CT-Zellen beim Austreten durch die Ausgangs-Ports.
  • Der CT-Modus erlaubt es der Switch-Architektur 1300, die gesamte Paketpufferung sowohl an dem Eintrittskachelelement 1302 als auch an dem Austrittskachelelement 1304 zu umgehen. Wenn vorbestimmte Bedingungen erfüllt sind, stimmen sich der CT-Manager für das Eintrittskachelelement 1310 und der CT-Manager für das Austrittskachelelement 1312 ab, um es einzelnen Paketzellen zu erlauben, von dem Eintrittskachelelement 1302 zu dem Austrittskachelelement 1304 zu laufen, ohne dass sie darauf warten müssen, dass das gesamte Paket, zu dem die Zellen gehören, ankommt und (nach Empfang) in die Warteschlange des Eingangspuffers 110 und (zur Übertragung) des Ausgangspuffers 136 eingereiht wird.
  • 14 zeigt den Fortschritt 1400 einer Zelle für den Paketstart (SoP-Zelle) unter Verwendung von CT. Die SoP-Zelle kommt an und wird in dem Sammelpuffer 1308 bei dem Eintrittskachelelement 1302 gespeichert (1402). Der CT-Manager für das Eintrittskachelelement 1310 führt eine (eintrittseitige) lokale CT-Eignungsprüfung für das mit der SoP-Zelle verbundene Paket durch (1404). Bei einer Implementierung umfasst die lokale Eignungsprüfung, ob der Eingangspuffer 110 bereits Pakete enthält, die für denselben Ausgangs-Port bestimmt sind wie die empfangene CT-Zelle. Ist das der Fall, so ist die CT-Zelle nicht geeignet, weil andere Pakete bereits auf die Übermittlung zu diesem Ausgangs-Port warten. Wenn die CT-Eignungsprüfung bestanden wird, sendet der CT-Manager für das Eintrittskachelelement 1310 eine CT-Anforderungsnachricht 1450 an das Ziel-Austrittskachelelement für das Paket (1406). Es sei angemerkt, dass ein Statusbit in der CT-Anforderungsnachricht 1450 angeben kann, ob es sich bei der empfangenen Zelle um ein Einzelzellenpaket handelt (das heißt, dass das Paket in eine einzelne Zelle passt). Die CT-Anforderungsnachricht 1450 kann wie die oben erörterten Warteschlangenstatus- und Guthabengewährungsnachrichten über einen fest zugeordneten Steuerpfad durch die IFI 1306 laufen. Der fest zugeordnete Steuerpfad stellt einen Steuerkanal mit sehr niedriger Latenzzeit bereit, der die Koordination des schwierigen Betriebs eines CT-Flusses in einer Vermittlungsarchitektur mit mehreren Pufferungspunkten erleichtert.
  • 15 zeigt den zusätzlichen Fortschritt 1500 bei der Verarbeitung der CT-Zelle unter Verwendung des Beispiels von 14. Der CT-Manager für das Austrittskachelelement 1312 empfängt die CT-Anforderungsnachricht (1502) und führt eine (austrittseitige) lokale CT-Eignungsprüfung durch (1504). Diesbezüglich empfängt der CT-Manager für das Austrittskachelelement 1312 (in den diversen Austrittskachelelementen) von potenziell vielen Eintrittskachelelementen CT-Anforderungsnachrichten für einen bestimmten Ausgangs-Port. Der CT-Manager für das Austrittskachelelement 1312 entscheidet auf der Grundlage des Zustands des Ausgangs-Ports, ob die CT-Anforderung gewährt oder verweigert werden soll. Zum Beispiel kann der CT-Manager für das Austrittskachelelement 1312 die CT-Anforderung verweigern, wenn in dem Ausgangspuffer 136 an dem betreffenden Austrittskachelelement bereits Pakete für diesen Ausgangs-Port in eine Warteschlange eingereiht sind. Zusätzlich kann der CT-Manager für das Austrittskachelelement die CT-Anforderung verweigern, wenn mehrere Eintrittskachelelemente denselben Ausgangs-Port für CT anfordern. Ferner kann der CT-Manager 1312 den Status der IFI 1306 überprüfen, um CT-bezogene Entscheidungen zu treffen. Zum Beispiel kann ein FDR-Element ein Map-Element an sein Austrittskachelelement senden (zum Beispiel das unten referenzierte Bitmap FDR_Empty_Bitmap). Das Map-Element kann angeben, ob eine beliebige der in der Warteschlange der IFI 1306 eingereihten Zellen für einen beliebigen der Austrittskachelelement-Ports bestimmt ist. Der CT-Manager 1312 kann CT verweigern, wenn die IFI 1306 bereits eine in die Warteschlange eingereihte Zelle aufweist, die für einen Port bestimmt ist, bei dem es sich auch um das Ziel einer CT anfordernden Zelle handelt. Das heißt, dass es einer neu angekommen SoP-Zelle möglicherweise nicht erlaubt wird, vor einer Zelle durchzulaufen, die bereits darauf wartet, denselben Ausgangs-Port zu nutzen. Es sei angemerkt, dass der CT-Manager für das Austrittskachelelement 1312 in jedem Austrittskachelelement vorhanden ist und eine Gesamtübersicht über die von allen Eintrittskachelelementen abgegebenen Anforderungen führt. Die Gesamtübersicht gilt jedoch möglicherweise nur im Hinblick auf die mit diesem bestimmten Austrittskachelelement verbundenen Ausgangs-Ports. Das heißt, dass ein bestimmter CT-Manager für das Austrittskachelelement 1312 CT-bezogene Entscheidungen für die Ausgangs-Ports für dieses Austrittskachelelement trifft und dass es sich bei der Entscheidung um eine gemeinsame Entscheidung mit dem anfordernden Eintrittskachelelement handelt. Neben den oben beschriebenen Prüfungen können von den CT-Managern zusätzliche oder andere Prüfungen auf der Eintrittseite und der Austrittseite durchgeführt werden. Wenn die austrittseitige CT-Eignungsprüfung bestanden wird, dann kann der CT-Manager für das Austrittskachelelement 1312 eine CT-Gewährungsnachricht 1550 an den CT-Manager für das Eintrittskachelelement 1310 zurückschicken.
  • Die CT-Zelle erreicht die Spitze des Sammelpuffers 1308. Wenn CT gewährt wurde, dann erhält die CT-Zelle Zugriff mit Priorität auf die Switching Fabric. Die CT-Zelle 1552 durchläuft die Switching Fabric und wird in einem CT-Puffer 1320 gespeichert. Mit anderen Worten umgeht die CT-Zelle 1552 den Eingangspuffer 110 und läuft direkt durch die Switching Fabric zu dem Austrittskachelelement. CT-Zellen haben auf die Switching Fabric Zugriff mit höherer Priorität. Aus diesem Grund kann der CT-Manager für das Eintrittskachelelement 1310 außerdem eine Vermeidung von Starvation implementieren, um zu verhindern, dass regelmäßige CT-Flüsse verhindern, dass gepufferte SAF-Paketdaten Austrittskachelelemente erreichen. Zum Beispiel kann der CT-Manager für das Eintrittskachelelement 1310 die Geschwindigkeit von SAF-Zellen bei dem Austreten aus dem Eintrittskachelelement und die Geschwindigkeit von CT-Zellen bei dem Austreten aus dem Eintrittskachelelement während vorbestimmter Zeitfenster, zum Beispiel Fenster mit 1000 Takten, überwachen. Wenn die Geschwindigkeit von SAF-Zellen einen vorbestimmten CT-Stopp-Schwellenwert unterschreitet (oder eine beliebige andere Starvation-Bedingung erfüllt ist), kann der CT-Manager für das Eintrittskachelelement 1310 CT für neue Pakete, die aus seinem Eintrittskachelelement austreten würden, anhalten. Der CT-Manager für das Eintrittskachelelement 1310 kann CT für eine bestimmte Dauer anhalten, zum Beispiel, bis die Starvation-Bedingung abgemildert ist (zum Beispiel, wenn die Geschwindigkeit von SAF-Zellen einen CT-Wiederaufnahme-Schwellenwert überschreitet).
  • 16 zeigt den zusätzlichen Fortschritt 1600 bei der Verarbeitung der CT-Zelle unter Verwendung des Beispiels von 14 und 15. Die CT-Zelle 1552 kommt in einem CT-Puffer 1320 an (1602). Es sei angemerkt, dass der Planer 1322, der Spur 1 ansteuert, von dem SAF-Pfad und dem CT-Pfad in der Schaltungsanordnung zur Pufferung 1318 gemeinsam genutzt wird. Der Planer 1322 räumt CT-Zellen Vorrang ein und wählt sie vorzugsweise für die Übermittlung zu dem Austrittskachelelement aus, wenn sie verfügbar sind. Unter mehreren gepufferten CT-Zellen können die Planer 1322 und 1324 zum Beispiel eine RR-Auswahl implementieren. In dem Beispiel von 16 läuft die CT-Zelle 1552 durch den CT-Puffer (1604), wird von dem Planer 1324 ausgewählt und wird über Spur 0 an das Austrittskachelelement 1304 gesendet (1606). Die CT-Zelle 1552 wird in dem entsprechenden CT-Puffer pro Ausgangs-Port 1314 gespeichert (1608), und die Schaltungsanordnung zur Port-Planung 152 wählt die CT-Zelle 1552 zur Übertragung nach außen durch den Ausgangs-Port aus (1610).
  • Pakete, die länger sind als eine Zelle, weisen eine Zelle für das Paketende (EoP-Zelle) und potenziell null oder mehr Zellen für die Paketmitte (MoP-Zelle) auf. 17 zeigt die Verarbeitung 1700 von MoP-/EoP-Zellen 1750, die auf die SoP-Zelle folgen. In 17 kommen die MoP-/EoP-Zellen 1750 bei dem Sammelpuffer 1308 an (1702). Wenn es sich bei der Zelle um eine EoP-Zelle handelt, kann der Eintrittskachelelement-CT-Manager eine Nachricht für das CT-Ende an das nach außen gerichtete Austrittskachelelement senden, wenn dem entsprechende Paket CT gewährt wurde oder das Paket eine ausstehende CT-Anforderung aufweist. Sobald die MoP-/EoP-Zellen die Spitze des Sammelpuffers 1308 erreichen, erkennt der CT-Manager für das Eintrittskachelelement 1310 einen aktiven CT-Fluss für das Port-Paar aus Quelle und Ziel (1704), wenn CT gewährt wurde. Als Antwort erhalten die MoP-/EoP-Zellen 1750 Zugriff mit Priorität auf die Switching Fabric, und die MoP-/EoP-Zellen 1750 durchlaufen die Switching Fabric und kommen in einem CT-Puffer 1320 an (1706).
  • 18 zeigt die weitere Verarbeitung 1800 der MoP-/EoP-Zellen 1750, die auf die SoP-Zelle folgen. In 18 werden die MoP-/EoP-Zellen 1750 mit Priorität zum Austritt aus der Schaltungsanordnung zur Pufferung 1318, in diesem Beispiel über Spur 0, ausgewählt (1802). Der Planer 1324 sendet die MoP-/EoP-Zellen 1750 an das Austrittskachelelement 1304 (1804). Die MoP-/EoP-Zellen 1750 werden in dem entsprechenden CT-Puffer pro Ausgangs-Port 1314 gespeichert (1806), und die Schaltungsanordnung zur Port-Planung 152 wählt die MoP-/EoP-Zellen 1750 nacheinander für die Übertragung nach außen durch den Ausgangs-Port aus (1808).
  • Bei einigen Implementierungen speichert der Sammelpuffer 1308 Zellenzeiger, und die Nutzdaten der Zellen werden in dem Eingangspuffer 110 gespeichert. Diesbezüglich wird ein fester Anteil des Eingangspuffers 110, der so viele Zellen speichern kann, wie es der Tiefe des Sammelpuffers 1308 entspricht, für diesen Zweck entspricht. Bei dem Sammelpuffer 1308 kann es sich um ein Element mit fester Verzögerung handeln. Das heißt, dass jede eingehende Zelle während einer festen Anzahl von Taktzyklen in diesem Puffer warten kann. Diese Verzögerung kann auf der Grundlage einer Worst-Case-Round-Trip-Verzögerung zwischen einer mittels eines Eintrittskachelelements abgesendeten CT-Anforderung und einer entsprechenden, von dem Austrittskachelelement zurückkommenden CT-Antwort (Gewährung oder Verweigerung) vorliegen. Alle Pakete können durch den Sammelpuffer 1308 hindurch fortschreiten, unabhängig davon, ob sie für CT geeignet sind oder nicht. Analog kann ein Paketpuffer 1326 in der IFI 1306 Nutzdaten von Zellen für SAF-Zellen, CT-Zellen oder beide speichern, wobei die Schaltungsanordnung zur Pufferung 1318 Zellenzeiger auf in dem Paketpuffer 1326 definierte CT-Warteschlangen oder SAF-Warteschlangen speichert.
  • Zustand des Eintritts-CT-Managers
  • Bei einer Implementierung pflegt der Eintrittskachelelement-CT-Manager die folgenden Zustandsinformationen für den jeweiligen Austritts-Port Egr_Port_i:
    • CT_Eligible: Dieses Feld gibt an, ob Egr_Port_i für CT geeignet ist.
  • Staging_FIFO_PktCntr: Hierbei handelt es sich um einen Zähler auf Paketebene zum Zählen der Anzahl von für Egr_Port_i bestimmten Paketen, die sich aktuell in dem Sammelpuffer 1308 befinden und die für SAF-Übermittlung aufgelöst wurden, aber für welche die SOP-Zelle noch nicht aus der Warteschlange des Sammel-FIFO entnommen wurde.
  • Pre_ENQ_PktCntr: Hierbei handelt es sich um einen Zähler auf Paketebene zum Zählen der Anzahl von für Egr_Port_i bestimmten Paketen, die für SAF-Übermittlung aufgelöst wurden und für welche die SOP-Zelle aus der Warteschlange des Sammelpuffers 1308 entnommen wurde, aber das Paket noch nicht in die Warteschlange des Eintrittskachelelements eingereiht wurde.
  • Port_Counter: Hierbei handelt es sich um einen Zähler pro Port, der verwendet wird, um die Anzahl der für Egr_Port_i bestimmten Pakete, die in dem Eintrittskachelelement gepuffert sind, zu verfolgen.
  • Port_Empty_Timer: Der Zeitgeber wird verwendet, um die folgenden Zeitfenster abzudecken:
    • • Fortpflanzungsverzögerung für SAF-Pakete von dem Eintritt zu der IFI
    • • Verzögerung beim Aktualisieren der entsprechenden FDR_Empty_Bitmap und deren Fortpflanzung an das Austrittskachelelement.
  • Eine Absicherung anhand der obigen Zeitfenster hilft, das Umordnen zwischen Paketen, die von demselben Quell-Port kommen und zu demselben Ziel-Port gehen, zu verhindern.
  • Der Zeitgeber bleibt auf einen programmierbaren Wert eingestellt, wenn der Port_Counter für Egr_Port_i (der eine Zählung von SAF-Paketen nach dem Einreihen in die Warteschlange vornimmt) größer als null ist. Er beginnt, bei jedem Takt rückwärts zu zählen, sobald Port_Counter auf 0 heruntergezählt hat und wird als abgelaufen betrachtet, wenn sein Wert 0 erreicht, das heißt, wenn Port_Counter eine feste Anzahl von Takten lang 0 geblieben ist.
  • Jedes Eintrittskachelelement überwacht den Zustand seines Zeitgebers (abgelaufen oder nicht) und kommuniziert diesen Zustand (unter Verwendung des CT-Port-Zustands-Steuerpfades) mittels einer Art von Zeitmultiplexen für jeden der Systemausttrits-Ports an die Austrittskachelelemente.
  • CT_Req_Cntr: Hierbei handelt es sich um einen Zähler für die Anzahl von ausstehenden CT-Anforderungen an Egr_Port_i.
  • CT_Src_Port: Dieses Feld speichert die Quell-Port-ID eines Pakets, das entweder auf eine Antwort auf seine CT-Anforderung wartet oder aktiv Egr_Port_i durchdringt.
  • CT_Active: Dieses Feld gibt an, ob ein Feld gerade Egr_Port_i durchdringt.
  • Ein weiteres Beispiel für die austrittseitige Eignungsprüfung ist Folgendes: Einer SoP-Zelle wird erlaubt, eine CT-Anforderung abzugeben, wenn:
    • (Egr_Port_i.CT_Eligible UND
    • Egr_Port_i.Staging_FIFO_PktCntr == 0 UND
    • Egr_Port_i.Pre_ENQ_PktCntr == 0 UND
    • Egr_Port_i.Port_Empty_Timer == 0 UND
    • ((Egr_Port_i.CT_Req_Cntr == 0) ODER (Egr_Port_i.CT_src_port == Quell-Port der Zelle)))
  • Die Eignungsprüfung für MoP-/EoP-Zellen kann folgendermaßen aussehen:
    • (Egr_Port_i.CT_Active == 1 UND
    • Egr_Port_i.CT_Src_Port == Quell-Port der Zelle).
  • Zustand des Fabric-CT-Managers
  • Der Fabric-CT-Manager 1316 kann die folgenden Zustandsinformationen pflegen:
    • Port_Cntr: Hierbei handelt es sich um einen Zähler auf Paketebene zum Zählen der Anzahl von SAF-Paketen, die bei dem FDR-Element für diesen Austritts-Port gepuffert werden.
  • Bei jedem Takt sendet der Fabric-CT-Manager 1316 ein K Bit großes Bitmap (FDR_Empty_Bitmap) an das mit ihm gekoppelte Austrittskachelelement, wobei K für die Anzahl von lokalen Austritts-Ports steht und angibt, ob Port_Cntr für diesen Port größer oder gleich null ist.
  • Anfangszustand:
    • Egr_Port_i.Port_Cntr = 0.
  • Zustand des CT-Managers für das Austrittskachelelement
  • Der CT-Manager für das Austrittskachelelement 1312 kann die folgenden Zustandsinformationen pro lokalem Austritts-Port pflegen:
    • lngress_Tiles_Empty_Bitmap: Hierbei handelt es sich um ein N Bit großes Bitmap (mit einem Bit für jedes der N Eintrittskachelelemente) zum Speichern, ob das jeweilige der Eintrittskachelelemente für Egr_Port_i signalisiert, dass es leer ist, zum Beispiel, ob Port_Empty_Timer für diesen Port an dem jeweiligen der Eintrittskachelelemente abgelaufen ist oder nicht. Ein 1'b-Wert in diesem Bitmap gibt an, dass an dem entsprechenden Eintrittskachelelement kein SAF-Datenverkehr für Egr_Port_i vorhanden ist. Andernfalls ist der Wert in dem Bitmap für dieses Eintrittskachelelement 0'b.
  • FDR_Empty: Hierbei handelt es sich um einen 1 Bit großen Wert zum Angeben, ob das mit diesem Austrittskachelelement gekoppelte FDR-Element für Egr_Port_i leer ist (1'b bedeutet leer; 0'b bedeutet nicht leer).
  • Egress_PktCntr: Hierbei handelt es sich um einen Zähler auf Paketebene zum Zählen der Anzahl von SAF-Paketen für Egr_Port_i an dem lokalen Austrittskachelelement.
  • CT_FlFO_CellCntr: Hierbei handelt es sich um einen Zähler der Anzahl von Zellen in dem CT-FIFO für Egr_Port_i.
  • CT_State: Dieses Feld enthält den CT-Zustand von Egr_Port_i. Die verschiedenen möglichen CT-Zustände sind die Folgenden:
  • CT_INELIGIBLE - Der Port ist für CT ungeeignet
  • CT_PREP - Der Port ist hinsichtlich SAF leer und wartet darauf, für CT verfügbar zu werden
  • CT_AVAILABLE - Der Port ist für CT verfügbar
  • CT_CLAIMED_ACTIVE - Der Port wurde von einem der Eintrittskachelelemente für CT beansprucht und wartet auf eine End_of_CT_Packet-Nachricht, das heißt, dass der Port gerade dabei ist, ein Paket durchzureichen.
  • CT_CLAIMED_SLEEPING - Der Port wurde von einem der Eintrittskachelelemente für CT beansprucht und hat die End_of_CT_Packet-Nachricht gesehen, das heißt, dass der Port nicht dabei ist, ein Paket durchzureichen.
  • CT_COMPLETING - Der Port ist nicht leer, aber er befindet sich inmitten eines CT-Pakets (die EOP-Zelle für das aktuell in Durchreichung befindliche Paket ist noch nicht angekommen).
  • Owner_lngress_Tile: Wenn sich Egr_Port_i in dem Zustand CT_CLAIMED_ACTIVE oder CT_CLAIMED_SLEEPING oder CT_COMPLETING befindet, gibt dieses Feld das Eintrittskachelelement an, das Eigentümer dieses Ports ist.
  • Middle_of_CT_Packet: Dieses Feld gibt an, ob Egr_Port_i aktuell gerade ein Paket durchreicht.
  • CT_Drain_Timer: Dieser Zeitgeber wird verwendet, um eine Totzeit zu implementieren, wenn Egr_Port_i sich in dem Übergang zwischen dem CT- und dem SAF-Modus befindet. Wenn sich Egr_Port_i in dem Zustand CT_CLAIMED_ACTIVE oder CT_CLAlMED_SLEEPlNG befindet und gerade hinsichtlich SAF nach nicht leer wechselt oder eine CT-Anforderung von einem Eintrittskachelelement, das nicht der Eigentümer ist, sieht, stellt dieser Zeitgeber sicher, dass der Port die Übertragung aller CT-Pakete, die gerade unterwegs sind, abschließt, bevor er beginnt, SAF-Pakete zu übertragen.
  • Der Wert dieses Zeitgebers wird anfänglich auf einen MAX-Wert eingestellt, bei dem es sich um die Zeit handelt, die in dem schlechtesten Fall in Abhängigkeit von der Port-Geschwindigkeit benötigt wird, damit die EOP-Zelle mit der größtmöglichen Paketgröße (zum Beispiel ein Jumbo-Paket) an dem Austritt ankommt. Wenn der Austritt eine End_of_ CT_Packet-Nachricht für diesen Port sieht, ist nun sichergestellt, dass die EOP-Zelle des CT-Pakets in den Sammelpuffer 1308 an dem Eintritt gelangt ist. Der Wert des Zeitgebers wird dann auf einen MIN-Wert verringert, bei dem es sich um die Zeit handelt, die in dem schlechtesten Fall benötigt wird, damit die EOP-Zelle des Pakets die Spitze des Sammelpuffers 1308 erreicht, die Kopplungsstruktur durchläuft und planmäßig aus dem Austrittskachelelement austritt.
  • CT_Prep_Timer: Dieser Zeitgeber wird verwendet, um eine Totzeit zu implementieren, wenn ein Port sich in dem Übergang zwischen dem SAF-(CT_INELlGIBLE) und dem CT-Modus (CT_AVAILABLE) befindet. Er deckt die Fortpflanzungsverzögerung von CT-Port-Zustandsnachrichten von dem Eintritt zu dem Austritt ab und verhindert Fälle, in denen direkt aufeinanderfolgende Pakete, die von demselben Quell-Port und kommen und zu demselben Ziel-Port gehen, umgeordnet werden.
  • Der Zeitgeber wird auf einen programmierbaren Wert eingestellt, wenn ein Port in den Zustand CT_PREP wechselt, wobei er im Hinblick auf SAF leer wird, wobei Folgendes gilt:
    • Ein Austritts-Port wird als leer betrachtet, wenn:
    • (Egr_Port_i.Egress_PktCntr == 0 UND
    • Egr_Port_i.FDR_Empty == 1 UND
    • Und alle Bits in Egr_Port_i.Ingress_Tiles_Empty_Bitmap == 1)
  • Während er sich in dem Zustand CT_PREP befindet, zählt der Zeitgeber bei jedem Takt rückwärts bis auf 0. Beliebige neue CT-Anforderungen an diesen Port während dieses Fensters (wenn dieser Zeitgeberwert > 0 ist) werden abgelehnt. Wenn dieser Zeitgeberwert 0 wird, wird der Port für CT verfügbar und sein Zustand ändert sich in CT_AVAILABLE.
  • Die austrittseitige CT-Eignungsprüfung kann folgendermaßen implementiert werden: Gewährung einer CT-Anforderung, wenn:
    • Egr_Port_i.CT_FIFO_Cntr < Schwellenwert UND
    • (Egr_Port_i.CT_State == CT_AVAILABLE ODER
    • ((Egr_Port_i.CT_State == CT_CLAIMED_SLEEPING) UND (Egr_Port_i.Owner_Ingress_Tile == Eintrittskachelelement des Anforderers)))
  • Die erste Prüfung kann erfolgen, um sicherzustellen, dass sich der CT-FIFO für diesen Port nicht bis über einen bestimmten Wert aufbaut. Dieser Aufbau kann aufgrund von übermäßigen „Vorbestellungen“ für den Austritt geschehen. Die zweite Prüfung kann erfolgen, um sicherzustellen, dass sich der Port in einem Zustand befindet, in dem CT zuverlässig gewährt werden kann. Wenn eine dieser beiden Prüfungen nicht bestanden wird, wird die CT-Anforderung abgelehnt.
  • Die oben beschriebenen Verfahren, Vorrichtungen, Verarbeitungen und die oben beschriebene Logik können auf viele verschiedene Weisen und in vielen verschiedenen Kombinationen aus Hardware und Software implementiert werden. Zum Beispiel kann es sich bei allen Implementierungen oder bei einem Teil davon um Schaltungsanordnungen handeln, die einen Prozessor für Anweisungen, wie zum Beispiel eine CPU (Central Processing Unit, zentrale Verarbeitungseinheit), einen Mikrocontroller oder einen Mikroprozessor aufweisen; einen ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung), einen PLD (Programmable Logic Device, programmierbare Logikvorrichtung) oder einen FPGA (Field Programmable Gate Array, feldprogrammierbare Gatteranordnung); oder eine Schaltungsanordnung, welche diskrete Logik oder andere Schaltungskomponenten aufweist, einschließlich analoger Schaltungskomponenten, digitaler Schaltungskomponenten oder beidem; oder eine beliebige Kombination aus diesen. Die Schaltungsanordnung kann diskrete, miteinander verbundene Hardwarekomponenten aufweisen und/oder kann beispielsweise auf einem einzelnen Rohchip für eine integrierte Schaltung kombiniert sein, auf mehrere Rohchips für integrierte Schaltungen verteilt sein oder in einem MCM (Multiple Chip Module, Multi-Chip-Modul) aus mehreren Rohchips für integrierte Schaltungen implementiert sein.
  • Die Schaltungsanordnung kann ferner Anweisungen für eine Ausführung mittels der Schaltungsanordnung aufweisen oder auf diese zugreifen. Die Anweisungen können in einem materiellen Speichermedium gespeichert sein, bei dem es sich um etwas anderes als ein vorübergehendes Signal handelt, beispielsweise um einen Flash-Speicher, ein RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff), ein ROM (Read Only Memory, Nur-Lese-Speicher), ein EPROM (Erasable Programmable Read Only Memory, löschbarer programmierbarer Nur-Lese-Speicher); oder auf einer Magnetplatte oder einer optischen Platte, wie zum Beispiel einer CDROM (Compact Disc Read Only Memory, Nur-Lese-CD), einem Festplattenlaufwerk oder einer anderen Magnetplatte oder optischen Platte; oder in oder auf einem anderen, maschinenlesbaren Medium. Ein Produkt, wie beispielsweise ein Computerprogrammprodukt, kann ein Speichermedium und in dem oder auf dem Medium gespeicherte Anweisungen aufweisen, und die Anweisungen können, wenn sie mittels der Schaltungsanordnung in einer Vorrichtung ausgeführt werden, bewirken, dass die Vorrichtung eine beliebige der oben beschriebenen oder in den Zeichnungen veranschaulichten Verarbeitungen implementiert.
  • Die Implementierungen können als Schaltungsanordnungen auf mehrere Systemkomponenten verteilt sein, wie beispielsweise auf mehrere Prozessoren und Speicher, optional einschließlich mehrerer verteilter Verarbeitungssysteme. Parameter, Datenbanken und andere Datenstrukturen können getrennt gespeichert und verwaltet werden, können in einem einzigen Speicher oder in einer einzigen Datenbank enthalten sein, und sie können logisch und physisch auf viele verschiedene Weisen organisiert sein, und sie können auf viele verschiedene Weisen implementiert sein, einschließlich als Datenstrukturen, wie beispielsweise verknüpfte Listen, Hash-Tabellen, Datenfelder, Datensätze, Objekte oder implizite Speichermechanismen. Bei Programmen kann es sich um Teile (zum Beispiel Subroutinen) eines einzelnen Programms oder getrennte Programme handeln, sie können auf mehrere Speicher und Prozessoren verteilt sein oder auf viele verschiedene Weisen implementiert sein, wie beispielsweise in einer Bibliothek, beispielsweise einer gemeinsam verwendeten Bibliothek (zum Beispiel einer DLL (Dynamic Link Library, dynamische Programmbibliothek)). Die DLL kann zum Beispiel Anweisungen speichern, welche beliebige der oben beschriebenen oder in den Zeichnungen veranschaulichten Verarbeitungen durchführen, wenn sie von der Schaltungsanordnung ausgeführt wird.
  • Verschiedene Implementierungen wurden speziell beschrieben. Es sind jedoch auch viele andere Implementierungen möglich.

Claims (10)

  1. Verfahren, das Folgendes umfasst:. Erstellen einer verteilten Pufferungsarchitektur (200, 300, 1300), die Folgendes umfasst: einen Eingangspaketpuffer (110) in einem Eintrittskachelelement (104, 1302); und einen Ausgangspaketpuffer (136) in einem Austrittskachelelement (106, 1304); Verbinden des Eintrittskachelelements (104, 1302) und des Austrittskachelelements (106, 1304) mit einer Switching Fabric (901, 1306); und Ausführen eines verteilten Bandbreitengewährungsmechanismus zwischen dem Eintrittskachelelement (104, 1302) und dem Austrittskachelelement (106, 1304) über die Switching Fabric (901, 1306), wobei der verteilte Bandbreitengewährungsmechanismus einen Cut-Through-Gewährungsmechanismus umfasst und das Verfahren ferner Folgendes umfasst: Empfangen einer Paketzelle in einem Sammelpuffer (1308) in dem Eintrittskachelelement (104, 1302); Treffen einer eintrittseitigen Entscheidung darüber, ob die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304). geeignet ist, Senden einer Cut-Through-Anforderungsnachricht (1450) von dem Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) an den Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304); Treffen einer austrittseitigen Entscheidung darüber, ob die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, Senden einer Cut-Through-Gewährungsnachricht (1550) von dem Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) an den Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302); und wenn die Paketzelle eintrittsseitig und austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, Ausführen eines Cut-Through-Modus, in dem die gesamte Paketpufferung sowohl an dem Eintrittskachelelement (104, 1302) als auch an dem Austrittskachelelement (106, 1304) umgangen wird, um einzelne Paketzellen von dem Eintrittskachelelement (104, 1302) an das Austrittskachelelement (106, 1304) weiterzuleiten, ohne darauf zu warten, dass das gesamte Paket ankommt, zu dem die einzelnen Paketzellen gehören.
  2. Verfahren nach Anspruch 1, wobei: der verteilte Bandbreitengewährungsmechanismus einen Store-and-Forward-Mechanismus [Speichern-und-Weiterleiten-Mechanismus] zur Bandbreitenguthabengewährung umfasst; und das Verfahren ferner Folgendes umfasst: Verfolgen, mittels eines Eintrittswarteschlangenplaners (126), von in dem Eingangspaketpuffer (110) definierten, aktiven virtuellen Ausgangswarteschlangen (VoQs, Virtual Output Queues).
  3. Verfahren nach Anspruch 2, das ferner Folgendes umfasst: Absetzen einer Bandbreitenguthaben-Anforderungsnachricht an das Austrittskachelelement (106, 1304) für eine ausgewählte, aktive VoQ unter den aktiven VoQs.
  4. Verfahren nach Anspruch 3, das ferner Folgendes umfasst: Bestimmen, mittels eines Austrittswarteschlangenplaners, dass als Reaktion auf die Bandbreitenguthaben-Anforderungsnachricht der ausgewählten, aktiven VoQ Bandbreite gewährt wird; und Kommunizieren einer Guthabengewährungsnachricht (132) durch die Switching Fabric (901, 1306) an das Eintrittskachelelement (104, 1302).
  5. Verfahren nach Anspruch 4, das ferner Folgendes umfasst: Empfangen der Guthabengewährungsnachricht (132) an dem Eintrittswarteschlangenplaner (126); und Übertragen eines Warteschlangen-Entnahmebefehls von dem Eintrittswarteschlangenplaner (126) an einen Eintrittskontextmanager (124).
  6. Verfahren nach Anspruch 5, das ferner Folgendes umfasst: Hinzufügen, mittels des Eintrittskontextmanagers (124), eines Warteschlangen-Entnahmekontexts für die ausgewählte, aktive VoQ als Reaktion auf den Warteschlangen-Entnahmebefehl; Absetzen eines Pufferlesebefehls (710), der so konfiguriert ist, dass er das Entnehmen von Bytes aus der ausgewählten, aktiven VoQ bewirkt; und Übermitteln der Bytes durch die Switching Fabric (901, 1306) an das Austrittskachelelement (106, 1304).
  7. Maschine, die Folgendes umfasst: ein Eintrittskachelelement (104, 1302), das Folgendes umfasst: einen Eingangspaketpuffer (110), der so konfiguriert ist, dass er ein ganzes empfangenes Paket und Nutzdaten einer einzelnen Paketzelle für ein ankommendes Paket speichert; und einen Sammelpuffer (1308), der so konfiguriert ist, dass er einen Paketzellenzeiger auf die Nutzdaten der Paketzelle speichert, während gemäß den Nutzdaten der einzelnen Paketzellen eine Cut-Through-Entscheidung für das ankommende Paket getroffen wird; ein Austrittskachelelement (106, 1304), das einen Ausgangspaketpuffer (136) umfasst, der so konfiguriert ist, dass er einen Port-spezifischen Cut-Through-Puffer (1314) definiert; ein Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) und ein Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304); wobei der Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) dazu konfiguriert, eine eintrittseitige Entscheidung darüber zu treffen, ob die Paketzelle eintrittseitig zum Durchreichen an das' Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, eine Cut-Through-Anforderungsnachricht (1450) an den Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) zu senden; der Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) dazu konfiguriert, eine austrittseitige Entscheidung darüber zu treffen, ob die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, eine Cut-Through-Gewährungsnachricht (1550) an den Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) zu senden; wenn die Paketzelle eintrittsseitig und austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, der Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) und der Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) dazu konfiguriert sind, einzelne Paketzellen von dem Eintrittskachelelement (104, 1302) an das Austrittskachelelement (106, 1304) weiterzuleiten, so dass die gesamte Paketpufferung sowohl an dem Eintrittskachelelement (104, 1302) als auch an dem Austrittskachelelement (106, 1304) umgangen wird, ohne darauf zu warten, dass das gesamte Paket ankommt, zu dem die einzelnen Paketzellen gehören; und die Maschine ferner Folgendes umfasst: eine Switching Fabric (901, 1306), die das Eintrittskachelelement (104, 1302) mit dem Austrittskachelelement (106, 1304) verbindet; und eine zwischen dem Eintrittskachelelement (104, 1302) und dem Austrittskachelelement (106, 1304) verteilte Schaltungsanordnung zur Bandbreitenzuteilung, wobei die Bandbreitenzuteilung so konfiguriert ist, dass sie: über die Store-and-Forward-Bandbreitenguthabenzuteilung zum Übermitteln des gesamten empfangenen Pakets aus dem Eingangspaketpuffer (110) an den Ausgangspaketpuffer (136) entscheidet; und über die Cut-Through-Bandbreitenzuteilung zum Übermitteln der Nutzdaten der Paketzelle aus dem Eingangspaketpuffer (110) an den Port-spezifischen Cut-Through-Puffer (1314) entscheidet.
  8. Maschine nach Anspruch 8, wobei der Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) so konfiguriert ist, dass er für die Nutzdaten der einzelnen Paketzellen ein eintrittseitiges Cut-Through-Eignungskriterium auswertet.
  9. Maschine nach einem der vorangehenden Ansprüche, wobei der Cut-Through-Manager für das Austrittskachelelement so konfiguriert ist, dass er für die Nutzdaten der einzelnen Paketzelle ein austrittseitiges Cut-Through-Eignungskriterium auswertet.
  10. Maschine, die Folgendes umfasst: ein Eintrittskachelelement (104, 1302), das Folgendes umfasst: einen Eingangspaketpuffer (110), der so konfiguriert ist, dass er ein ganzes empfangenes Paket und Nutzdaten einer einzelnen Paketzelle für ein ankommendes Paket speichert; und einen Sammelpuffer (1308), der so konfiguriert ist, dass er einen Paketzellenzeiger auf die Nutzdaten der Paketzelle speichert, während gemäß den Nutzdaten der einzelnen Paketzellen eine Cut-Through-Entscheidung für das ankommende Paket getroffen wird; ein Austrittskachelelement (106, 1304), das Folgendes umfasst: einen Ausgangspaketpuffer (136), der so konfiguriert ist, dass er einen Port-spezifischen Cut-Through-Puffer (1314) definiert; und eine Switching Fabric (901, 1306), die das Eintrittskachelelement (104, 1302) mit dem Austrittskachelelement (106, 1304) verbindet, wobei die Switching Fabric (901, 1306) Folgendes umfasst: Store-and-Forward-Puffer (1004) pro Eintrittskachelelement (104, 1302); Cut-Through-Puffer (1320) pro Eintrittskachelelement (104, 1302); ein Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) und ein Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304); wobei der Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) dazu konfiguriert, eine eintrittseitige Entscheidung darüber zu treffen, ob die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle eintrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, eine Cut-Through-Anforderungsnachricht (1450) an den Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) zu senden; der Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) dazu konfiguriert, eine austrittseitige Entscheidung darüber zu treffen, ob die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist; wenn die Paketzelle austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, eine Cut-Through-Gewährungsnachricht (1550) an den Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) zu senden; wenn die Paketzelle eintrittsseitig und austrittseitig zum Durchreichen an das Austrittskachelelement (106, 1304) geeignet ist, der Cut-Through-Manager (1312) für das Austrittskachelelement (106, 1304) und der Cut-Through-Manager (1310) für das Eintrittskachelelement (104, 1302) dazu konfiguriert sind, einzelne Paketzellen von dem Eintrittskachelelement (104, 1302) an das Austrittskachelelement (106, 1304) weiterzuleiten, so dass die gesamte Paketpufferung sowohl an dem Eintrittskachelelement (104, 1302) als auch an dem Austrittskachelelement (106, 1304) umgangen wird, ohne darauf zu warten, dass das gesamte Paket ankommt, zu dem die einzelnen Paketzellen gehören; und die Maschine ferner Folgendes umfasst; eine erste Schaltungsanordnung zur Planung, die so konfiguriert ist, dass sie zwischen den Store-and-Forward-Puffern (1004) pro Eintrittskachelelement (104, 1302) und den Cut-Through-Puffern (1320) pro Eintrittskachelelement (104, 1302) eine Auswahl trifft, um eine erste Ausgangsspur zu dem Austrittskachelelement (106, 1304) anzusteuern; und eine zweite Schaltungsanordnung zur Planung, die so konfiguriert ist, dass sie zwischen den Cut-Through-Puffern (1320) pro Eintrittskachelelement (104, 1302), aber nicht zwischen den Store-and-Forward-Puffern (1004) pro Eintrittskachelelement (104, 1302) eine Auswahl trifft, um eine zweite Ausgangsspur für Cut-Through-Zellen zu dem Austrittskachelelement (106, 1304) anzusteuern.
DE102015014167.8A 2014-11-05 2015-11-03 Verteilte switch-architektur Active DE102015014167B4 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462075621P 2014-11-05 2014-11-05
US62/075,621 2014-11-05
US201562247673P 2015-10-28 2015-10-28
US62/247,673 2015-10-28
US14/927,103 2015-10-29
US14/927,103 US10257117B2 (en) 2014-11-05 2015-10-29 Distributed switch architecture

Publications (2)

Publication Number Publication Date
DE102015014167A1 DE102015014167A1 (de) 2016-05-12
DE102015014167B4 true DE102015014167B4 (de) 2024-05-02

Family

ID=55803026

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015014167.8A Active DE102015014167B4 (de) 2014-11-05 2015-11-03 Verteilte switch-architektur

Country Status (1)

Country Link
DE (1) DE102015014167B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111086115B (zh) * 2019-03-07 2021-10-15 杭州富阳飞尚装饰工程有限公司 一种装潢用的室内瓷砖切割器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030227926A1 (en) 2002-06-10 2003-12-11 Velio Communications, Inc. Method and system for guaranteeing quality of service in large capacity input output buffered cell switch based on minimum bandwidth guarantees and weighted fair share of unused bandwidth
US20040085967A1 (en) 2002-11-04 2004-05-06 Tellabs Operations, Inc., A Delaware Corporation Cell based wrapped wave front arbiter (WWFA) with bandwidth reservation
EP2134037A1 (de) 2008-06-12 2009-12-16 Alcatel Lucent Verfahren und Vorrichtung zur Planung von Datenpaketströmen
US20140098818A1 (en) 2012-10-05 2014-04-10 Broadcom Corporation Internal Cut-Through For Distributed Switches

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030227926A1 (en) 2002-06-10 2003-12-11 Velio Communications, Inc. Method and system for guaranteeing quality of service in large capacity input output buffered cell switch based on minimum bandwidth guarantees and weighted fair share of unused bandwidth
US20040085967A1 (en) 2002-11-04 2004-05-06 Tellabs Operations, Inc., A Delaware Corporation Cell based wrapped wave front arbiter (WWFA) with bandwidth reservation
EP2134037A1 (de) 2008-06-12 2009-12-16 Alcatel Lucent Verfahren und Vorrichtung zur Planung von Datenpaketströmen
US20140098818A1 (en) 2012-10-05 2014-04-10 Broadcom Corporation Internal Cut-Through For Distributed Switches

Also Published As

Publication number Publication date
DE102015014167A1 (de) 2016-05-12

Similar Documents

Publication Publication Date Title
DE102015017100B3 (de) Verteilte Switch-Architektur
DE112013004750B4 (de) Verwaltung von Aushungern und Überlastung in einem zweidimensionalen Netz mit Flusskontrolle
DE60314205T2 (de) Arbiter für ein Vermittlungssystem mit Eingangspuffer
DE60036682T2 (de) Maschine zur gewichteten ringförmigen Ablaufsteuerung
DE69534540T2 (de) Apparat und Methode zur Verarbeitung von Bandbreitenanforderungen in einer ATM-Vermittlungsstelle
DE112020002510T5 (de) Verfahren und system zur gewährleistung von fairness zwischen anwendungen beim netzeintritt
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE69908821T2 (de) Datenvermittlungsverfahren und -vorrichtung
DE60036031T2 (de) Zuweisung von prioritätsstufen in einem datenfluss
DE69533695T2 (de) Busarbitrierungsverfahren für fernmeldevermittlung
DE69827053T2 (de) Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk
DE69636825T2 (de) Verzögerungsminimalisierungssystem mit garantierter Bandbreite für Echtzeitverkehr
DE69931587T2 (de) RRGS-Round-Robin-Greedy Ablaufsteuerung für Eingangs-/Ausgangsgepufferte Terabitswitches
DE10350504B4 (de) Verfahren und Vorrichtung zum Festlegen bzw. Zuteilen einer verfügbaren Verknüpfungsbandbreite zwischen paketvermittelten Datenflüssen
DE10196447B4 (de) Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher
DE69937862T2 (de) Bandbreitensteuerung mit zwei Komponenten, zur Anwendung in digitalen Kommunikationssystemen mit mehreren Klassen
DE60132307T2 (de) Paketvermittlung
DE60022243T2 (de) Verfahren in ATM Vermittlungsstellen zur optimalen Verwaltung eines Puffers mit dynamischen Schwellwerten für die Länge von Warteschlangen
DE69738386T2 (de) Verbesserungen in oder sich beziehend auf eine ATM-Vermittlungsstelle
EP0639014A1 (de) Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
DE60110934T2 (de) Modularer und skalierbarer switch und verfahren zum verteilen schneller ethernet-datenrahmen
DE60217685T2 (de) System und verfahren zum vermitteln von daten unter verwendung eines gemeinsamen koppelfeldes
DE112013003900B4 (de) Reservierungsverfahren und vorrichtung zur verringerung von verhungern von agenten und zurückprallen von nachrichten für zweidimensionale interconnects ohne pufferspeicher
EP0351014B1 (de) Koppelfeld für ein Vermittlungssystem
DE60222233T2 (de) Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R130 Divisional application to

Ref document number: 102015017100

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE., SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE, SG

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012873000

Ipc: H04L0012937000

R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012937000

Ipc: H04L0049112000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102015017523

Country of ref document: DE

Ref document number: 102015017100

Country of ref document: DE