DE102022108274A1 - Verbesserte virtuelle kanalumschaltung - Google Patents

Verbesserte virtuelle kanalumschaltung Download PDF

Info

Publication number
DE102022108274A1
DE102022108274A1 DE102022108274.1A DE102022108274A DE102022108274A1 DE 102022108274 A1 DE102022108274 A1 DE 102022108274A1 DE 102022108274 A DE102022108274 A DE 102022108274A DE 102022108274 A1 DE102022108274 A1 DE 102022108274A1
Authority
DE
Germany
Prior art keywords
message
virtual channel
node
switch
queue
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.)
Pending
Application number
DE102022108274.1A
Other languages
English (en)
Inventor
Frank R. Dropps
Joseph G. Tietz
Derek Alan Jr. Sherlock
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102022108274A1 publication Critical patent/DE102022108274A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0055Transmission or use of information for re-establishing the radio link
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/06Reselecting a communication resource in the serving access point

Landscapes

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

Abstract

Ein System zur Erleichterung einer verbesserten Umschaltung von virtuellen Kanälen in einem Knoten einer verteilten Computerumgebung wird bereitgestellt. Während des Betriebs kann das System einem stromaufwärts gelegenen Knoten in der verteilten Rechnerumgebung Flusssteuerungsguthaben für einen ersten virtuellen Kanal zuweisen. Das System kann über einen Nachrichtenpfad, der den stromaufwärts gelegenen Knoten umfasst, eine Nachricht auf dem ersten virtuellen Kanal basierend auf den zugewiesenen Flusssteuerungsguthaben empfangen. Das System kann dann die Nachricht in einer Warteschlange speichern, die mit einem Eingangsanschluss verbunden ist, und bestimmen, ob die Nachricht ein Kandidat für die Änderung des ersten virtuellen Kanals an dem Knoten ist, und zwar auf der Grundlage einer mit dem Eingangsanschluss verbundenen Abbildungsregel. Wenn die Nachricht ein Kandidat ist, kann das System die Nachricht mit einem zweiten virtuellen Kanal verknüpfen, der in der Abbildungsregel in der Warteschlange angegeben ist. Anschließend kann das System die Nachricht aus der Warteschlange über den zweiten virtuellen Kanal senden.

Description

  • HINTERGRUND
  • Feld
  • Die vorliegende Offenbarung bezieht sich auf Kommunikationsnetze. Genauer gesagt, bezieht sich die vorliegende Offenbarung auf ein Verfahren und ein System zur Erleichterung einer verbesserten Umschaltung des virtuellen Kanals (VC).
  • Figurenliste
    • 1A zeigt ein beispielhaftes Netz, das eine erweiterte virtuelle Kanalvermittlung gemäß einem Aspekt der vorliegenden Anwendung unterstützt.
    • 1B zeigt einen beispielhaften Schalter, der eine erweiterte virtuelle Kanalumschaltung gemäß einem Aspekt der vorliegenden Anwendung unterstützt.
    • 2 zeigt ein Beispiel für die Vermeidung von Deadlocks durch verbesserte virtuelle Kanalumschaltung gemäß einem Aspekt der vorliegenden Anwendung.
    • 3 zeigt eine verbesserte virtuelle Kanalumschaltung an einem Knoten gemäß einem Aspekt der vorliegenden Anwendung.
    • 4 zeigt ein Flussdiagramm, das den Prozess der Verarbeitung eines über einen Eingangs-VC empfangenen Pakets durch einen Knoten gemäß einem Aspekt der vorliegenden Anwendung veranschaulicht.
    • 5A zeigt ein Flussdiagramm, das den Prozess eines Knotens veranschaulicht, der einen Eingangs-VC eines Pakets auf einen Ausgangs-VC neu zuordnet, in Übereinstimmung mit einem Aspekt der vorliegenden Anwendung.
    • 5B zeigt ein Flussdiagramm, das den Prozess der Weiterleitung eines Pakets durch einen Knoten über einen Ausgangs-VC in Übereinstimmung mit einem Aspekt der vorliegenden Anwendung illustriert.
    • 6 zeigt ein Beispiel für einen Switch mit erweiterter Unterstützung für die Vermittlung virtueller Kanäle gemäß einem Aspekt der vorliegenden Anwendung.
  • In den Abbildungen beziehen sich gleiche Ziffern auf die gleichen Elemente der Abbildung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung soll den Fachmann in die Lage versetzen, die Erfindung herzustellen und zu verwenden, und wird im Zusammenhang mit einer bestimmten Anwendung und deren Anforderungen gegeben. Verschiedene Modifikationen an den offengelegten Beispielen werden für den Fachmann leicht ersichtlich sein, und die hierin definierten allgemeinen Grundsätze können auf andere Beispiele und Anwendungen angewendet werden, ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen. Daher ist die vorliegende Erfindung nicht auf die gezeigten Beispiele beschränkt, sondern hat den weitestgehenden Anwendungsbereich, der mit den Ansprüchen vereinbar ist.
  • Verbindungsleitungen mit hoher Kapazität sind das Übertragungsmedium für eine Vielzahl von Anwendungen, die auf physischen und virtuellen Geräten laufen. Solche Anwendungen haben eine steigende Nachfrage nach Bandbreite mit sich gebracht. Infolgedessen wetteifern die Gerätehersteller darum, größere Geräte mit beträchtlichen Verarbeitungsfähigkeiten zu bauen. Infolgedessen kann ein verteiltes System verschiedene Arten von Knoten umfassen, wie z. B. einen Quellknoten, der eine Nachricht ausgibt (z. B. eine Anforderung für eine Transaktion für ein Stück Daten in einer Anforderungsnachricht), und einen Zielknoten, der die Nachricht verarbeitet (z. B. die angeforderte Transaktion ausführt). In der Regel kann ein Quell- oder Zielknoten ein Endpunkt sein, z. B. ein Host oder ein Benutzergerät. Ein entsprechender Zielknoten kann Nachrichten von einer Vielzahl von Quellknoten empfangen.
  • Die Hochleistungsverbindungen können Kommunikationsressourcen wie Kommunikationsverbindungen (z. B. zwischen zwei Geräten in einem Netz) und interne Nachrichtenpfade (z. B. über interne Crossbar-Fabrics eines Geräts) zur Übertragung der Nachrichten umfassen. Typischerweise können die Nachrichten zu unabhängigen Nachrichtenflüssen gehören. So können beispielsweise die zu einer bestimmten Anwendung gehörenden Nachrichten von einem anfragenden Gerät zu einem antwortenden Gerät einen Nachrichtenfluss bilden. Da Kosten und architektonische Beschränkungen die Verfügbarkeit der Kommunikationsressourcen einschränken können, können sich mehrere Nachrichtenflüsse eine gemeinsame physische Kommunikationsverbindung oder einen internen Nachrichtenpfad teilen. Ein jeweiliger Nachrichtenfluss kann separaten VCs zugewiesen werden, die auch als virtuelle Fahrspuren bezeichnet werden können, um eine unabhängige Verwaltung der Flusssteuerungskredite für ein Segment der Kommunikationsressourcen zu ermöglichen. Während die VC-basierte Kommunikation viele wünschenswerte Eigenschaften für eine Computerumgebung mit sich bringen kann, bleiben einige Fragen bezüglich der VC-Verwaltung und der Neuzuordnung in einem Knoten ungelöst.
  • Ein Aspekt der vorliegenden Technologie kann ein System zur Erleichterung einer verbesserten Umschaltung von virtuellen Kanälen in einem Knoten einer verteilten Computerumgebung bereitstellen. Während des Betriebs kann das System einem stromaufwärts gelegenen Knoten in der verteilten Computerumgebung Flusssteuerungsguthaben für einen ersten virtuellen Kanal zuweisen. Das System kann über einen Nachrichtenpfad, der den stromaufwärts gelegenen Knoten umfasst, eine Nachricht auf dem ersten virtuellen Kanal basierend auf den zugewiesenen Flusssteuerungsguthaben empfangen. Das System kann dann die Nachricht in einer Warteschlange speichern, die mit einem Eingangsanschluss verbunden ist, und bestimmen, ob die Nachricht ein Kandidat für die Änderung des ersten virtuellen Kanals an dem Knoten ist, und zwar auf der Grundlage einer mit dem Eingangsanschluss verbundenen Abbildungsregel. Wenn die Nachricht ein Kandidat ist, kann das System die Nachricht mit einem zweiten virtuellen Kanal verknüpfen, der in der Abbildungsregel in der Warteschlange angegeben ist. Anschließend kann das System die Nachricht aus der Warteschlange über den zweiten virtuellen Kanal senden.
  • In einer Variante dieses Aspekts kann der Nachrichtenpfad eine Kommunikationsverbindung und die interne Vermittlungsstruktur eines Knotens umfassen.
  • In einer Variante dieses Aspekts kann das System eine dem zweiten virtuellen Kanal zugeordnete Liste mit einer Position der Nachricht in der Warteschlange aktualisieren. Ein entsprechender Eintrag in der Liste kann einer Nachricht entsprechen, die dem zweiten virtuellen Kanal zugeordnet ist.
  • In einer Variante dieses Aspekts kann das System den ersten virtuellen Kanal als virtuellen Eingangskanal für die Nachricht auf der Grundlage von Metadaten bestimmen, die in der Warteschlange in Verbindung mit der Nachricht gespeichert sind.
  • In einer weiteren Variante kann das System Flow Credit für den ersten virtuellen Kanal zuweisen und das Flow Credit an den Upstream-Knoten senden.
  • In einer Variante dieses Aspekts wird die Nachricht dem zweiten virtuellen Kanal zugeordnet, bevor die Nachricht einen Arbitrierungspunkt im Knoten erreicht.
  • In einer weiteren Variante kann das System auf der Grundlage des zweiten virtuellen Kanals über die Weiterleitung der Nachricht entscheiden.
  • In einer Variante dieses Aspekts kann das System den zweiten virtuellen Kanal basierend auf der Anwendung eines Offset-Wertes in der Abbildungsregel auf den ersten virtuellen Kanal bestimmen.
  • In einer Variante dieses Aspekts kann der erste virtuelle Kanal zu einer ersten Gruppe von virtuellen Kanälen gehören und der zweite virtuelle Kanal zu einer zweiten Gruppe von virtuellen Kanälen. Die Zuordnungsregel kann dann eine Kanalumschaltung von der ersten Gruppe virtueller Kanäle zur zweiten Gruppe virtueller Kanäle anzeigen.
  • Die hier beschriebenen Beispiele lösen das Problem von Deadlocks in einer verteilten Computerumgebung aufgrund mangelnder Kommunikationsressourcen, indem sie (i) einen Ausgangs-VC für ein Paket bestimmen, das auf einem Eingangs-VC an einem Knoten empfangen wurde; und (ii) das Paket dem Ausgangs-VC zuweisen, bevor über Ressourcen am entsprechenden Ausgangsport des Knotens entschieden wird, wodurch die VCs für die Nachricht umgeschaltet werden. Auf diese Weise kann der Knoten eine erweiterte virtuelle Kanalumschaltung zwischen einem Eingangs-VC und einem Ausgangs-VC ermöglichen, ohne dass umfangreiche Berechnungen erforderlich sind. Die Kanalumschaltung ermöglicht es dem Knoten, das Paket unter Umgehung einer möglichen Blockierung des Eingangs-VC weiterzuleiten.
  • In einer verteilten Datenverarbeitungsumgebung können Kommunikationsressourcen, wie z. B. interne Vermittlungsstrukturen und Kommunikationsverbindungen zwischen Knoten, von einer Vielzahl von Nachrichtenflüssen gemeinsam genutzt werden. Beispiele für einen Knoten sind u. a. ein Switch und ein Endgerät (z. B. ein Host oder ein Benutzergerät). In der Regel sind die zu einem Nachrichtenfluss gehörenden Nachrichten nicht auf die Nachrichten eines anderen Nachrichtenflusses angewiesen. Daher können diese Nachrichtenflüsse unabhängig voneinander sein. Einem Nachrichtenfluss kann ein VC zugewiesen werden, um eine feinkörnige Flusskontrolle und entsprechende Pufferressourcen für den Nachrichtenfluss zu ermöglichen. Somit kann der VC dem entsprechenden Nachrichtenfluss für ein Segment der Kommunikationsressourcen eine Kreditverwaltung für die Flusskontrolle bieten. Die VCs ermöglichen es den Nachrichtenflüssen, gemeinsame Kommunikationsressourcen zu nutzen, ohne sich gegenseitig zu stören.
  • Bei bestehenden Technologien können sich mehrere Nachrichtenflüsse einen VC teilen. Infolgedessen kann ein Knoten Nachrichten (oder Pakete) von mehreren Nachrichtenflüssen auf einem VC empfangen. Solche Nachrichten können mit einer Kennung des VC versehen werden (z. B. kann die VC-Nummer in die Nachricht aufgenommen werden). Wenn der Knoten eine Nachricht auf dem VC an einem Eingangsanschluss empfängt, kann es daher sein, dass der Knoten nicht über Ressourcen, wie z. B. Flow Credits von einem vorgelagerten Knoten, verfügt, die mit dem VC am Ausgangsanschluss verbunden sind, um die Nachricht weiterzuleiten. Diese Knappheit der mit dem VC verbundenen Ressourcen kann auch bei nachfolgenden Knoten in der verteilten Rechenumgebung vorhanden sein und eine zirkuläre Knappheit für den VC verursachen. Da keiner dieser Knoten Nachrichten über den VC weiterleiten kann, kann auch kein Knoten Guthaben für den VC erhalten. Die Nichtverfügbarkeit von Guthaben für den VC kann zu einer Blockierung aller Nachrichtenflüsse auf dem VC führen.
  • Um dieses Problem zu lösen, kann ein erster Satz von VCs auf einen zweiten Satz von VCs an einer Untergruppe von Knoten der verteilten Rechenumgebung umgeschaltet (oder neu zugeordnet) werden. Wenn eine Nachricht ein Kandidat für die Kanalumschaltung ist, kann der Knoten für eine Nachricht, die auf einem Eingangs-VC des ersten Satzes empfangen wurde, den Eingangs-VC in einen Ausgangs-VC des zweiten Satzes ändern. Da der Knoten für den Empfang und die Weiterleitung nicht auf denselben VC angewiesen ist, kann er die Nachricht auch dann weiterleiten, wenn für den Eingangs-VC kein Guthaben mehr verfügbar ist. Auf diese Weise kann der Knoten Deadlocks vermeiden. Um Störungen zwischen Nachrichtenflüssen, die vom Knoten ausgehen, und solchen, die den Knoten passieren, zu vermeiden, können die Nachrichtenflüsse, die den Knoten passieren, für die Kanalumschaltung ausgewählt werden. Mit anderen Worten, die Kanalumschaltung kann auf eingehende Nachrichtenflüsse von einem benachbarten Switch angewendet werden. Wenn die verteilte Rechenumgebung komplex ist, kann der Knoten mehr als zwei Sätze von VCs verwenden. Auf diese Weise kann der Knoten eine erweiterte virtuelle Kanalumschaltung ermöglichen, um eine Blockierung der Weiterleitung zu vermeiden.
  • Ein bestehender Ansatz für die Kanalumschaltung kann auf der Durchführung der Kanalumschaltung am Arbitrierungspunkt eines Knotens beruhen. Der Arbitrierungspunkt für den Knoten kann ein hardwarebasierter Arbiter (z. B. in anwendungsspezifischen integrierten Schaltkreisen (ASIC)) des Knotens sein. Der Arbiter kann zwischen mehreren internen Nachrichtenpfaden oder Puffern für einen Ausgangsanschluss (z. B. eine Ausgangsverbindung) wählen. Die Auswahl (oder Arbitrierung) kann auf der Verfügbarkeit von Ressourcen beruhen, wie z. B. Flow Credits, die mit einem VC verbunden sind. Erfolgt die Kanalumschaltung jedoch am Arbitrierungspunkt, muss der Arbiter über alle Sätze von VCs arbitrieren. Der daraus resultierende Arbiter kann komplex und ineffizient sein.
  • Die Kanalumschaltung kann weiter verbessert werden, indem der Prozess an einem Ort zwischen dem Eingang des Knotens und dem Arbitrierungspunkt durchgeführt wird, wodurch eine erweiterte Arbitrierung für die Nachrichten vermieden wird. Infolgedessen kann der Arbiter einfacher, kleiner und effizienter sein als der bisherige Ansatz. Der erweiterte virtuelle Kanalvermittlungsprozess kann virtualisierte Puffer für eine empfangene Nachricht auf einem Ingress-VC verwenden. Die Nachrichten eines jeweiligen VC können durch einen Tracking-Mechanismus, wie z. B. eine Liste (z. B. eine verknüpfte Liste), angezeigt werden. Der Tracking-Mechanismus kann von der Hardware des Knotens gepflegt werden. Da ein Puffer virtuell sein kann, muss die Guthabenverwaltung für einzelne VCs nicht von der physischen Adresse der Nachricht im Puffer abhängen.
  • Da die Nachricht auf der Grundlage des für den Eingangs-VC zugewiesenen Guthabens empfangen werden kann, wird die Nachricht mit dem Eingangs-VC gekennzeichnet, wenn sie in dem mit einem Eingangsanschluss verbundenen Puffer gespeichert wird. Der Knoten kann zum Beispiel ein Metadatenfeld im Eintrag des Puffers verwenden, um Informationen über den Eingangs-VC zu speichern. Wenn die Nachricht ein Kandidat für die Kanalumschaltung ist, kann der Knoten einen Ausgangs-VC für die Nachricht bestimmen. Der Knoten kann eine Mapping-Tabelle verwenden, um zu bestimmen, ob eine virtuelle Kanalumschaltung durchgeführt werden soll und, falls dies der Fall ist, den Ausgangs-VC für die Nachricht. Wird also keine virtuelle Kanalumschaltung durchgeführt, kann der Ausgangs-VC der Nachricht derselbe sein wie der Eingangs-VC. Die Neuzuordnungstabelle kann an einem dem Eingangsanschluss zugeordneten Speicherort gespeichert oder kodiert werden. Bei dem Speicherplatz kann es sich um ein Stück Hardware (z. B. ein Register) oder einen Speicherplatz handeln, der mit dem Switch verbunden ist. Daher kann die virtuelle Kanalumschaltung auf Port-Ebene programmiert werden. Ist eine solche Flexibilität jedoch nicht erforderlich, kann eine Teilmenge der Kommunikationsressourcen für die Durchführung der Kanalumschaltung vorausgewählt werden.
  • Der Knoten kann dann die Liste der Ausgangs-VC mit dem Ort der Nachricht aktualisieren (z. B. mit einem Zeiger auf die Nachricht). Dadurch kann der Arbiter des Knotens auf der Grundlage des Ausgangs-VCs entscheiden, ohne Zugang zu allen VCs zu benötigen. Wenn der Arbiter die Weiterleitungsanforderung für die Nachricht bewilligt (d. h. zur Weiterleitung auswählt), kann der Knoten anhand des Tags der Nachricht feststellen, dass die Nachricht auf dem Eingangs-VC empfangen wurde. Dementsprechend kann der Knoten einem vorgelagerten Knoten Guthaben für den Eingangs-VC zuweisen. Auf diese Weise kann der Knoten einen verbesserten Wechsel des virtuellen Kanals erleichtern, um Sackgassen in der verteilten Rechenumgebung zu vermeiden.
  • In dieser Offenlegung wird der Begriff „Switch“ in einem allgemeinen Sinne verwendet und kann sich auf jeden eigenständigen oder Fabric-Switch beziehen, der in einer beliebigen Netzwerkschicht arbeitet. Der Begriff „Switch“ ist nicht als Beschränkung der Beispiele der vorliegenden Erfindung auf Netze der Schicht 2 zu verstehen. Jedes Gerät, das Datenverkehr an ein externes Gerät oder einen anderen Switch weiterleiten kann, kann als „Switch“ bezeichnet werden. Jedes physische oder virtuelle Gerät (z. B. eine virtuelle Maschine oder ein Switch, der auf einem Computer arbeitet), das Datenverkehr an ein Endgerät weiterleiten kann, kann als „Switch“ bezeichnet werden. Beispiele für einen „Switch“ sind u. a. ein Layer-2-Switch, ein Layer-3-Router, ein Routing-Switch, eine Komponente eines Gen-Z- oder Compute Express Link (CXL)-Netzwerks, ein Prozessorgerät oder ein Fabric-Switch, der eine Vielzahl ähnlicher oder heterogener kleinerer physischer und/oder virtueller Switches umfasst.
  • Ein Ausdruck, der ein Gerät bezeichnet, wie „Knoten“, „Maschine“, „Einheit“ oder „Gerät“, kann einen Switch und einen End-Host, wie ein Benutzergerät, bezeichnen. Der Begriff „Nachricht“ bezieht sich auf eine Gruppe von Bits, die gemeinsam über ein Netz transportiert werden können. Der Begriff „Nachricht“ ist nicht so zu verstehen, dass die Beispiele der vorliegenden Beispiele auf eine bestimmte Schicht eines Netzes beschränkt sind. Der Begriff „Nachricht“ kann durch andere Begriffe ersetzt werden, die sich auf eine Gruppe von Bits beziehen, wie z. B. „Information“, „Daten“, „Anfrage“, „Antwort“, „Paket“, „Rahmen“, „Zelle“, „Datagramm“ oder „Transaktion“. “Außerdem kann sich der Begriff „Port“ auf den Port beziehen, der Daten empfangen, speichern oder senden kann. Der Begriff „Anschluss“ kann sich auch auf die Hardware-, Software- und/oder Firmware-Logik beziehen, die den Betrieb dieses Anschlusses erleichtern kann.
  • 1A zeigt ein beispielhaftes Netzwerk, das eine erweiterte virtuelle Kanalvermittlung gemäß einem Aspekt der vorliegenden Anwendung unterstützt. Eine verteilte Umgebung 100 kann eine Vielzahl von Knoten, wie z. B. Switches und Endgeräte, umfassen. Die Umgebung 100 kann ein Netzwerk 110 mit Switches 101, 102, 103, 104 und 105 umfassen. In diesem Beispiel kann der Switch 104 ein transparenter Switch sein (z. B. ein transparenter optischer Switch). Die Umgebung 100 kann auch Endgeräte (oder Hosts) 112, 114, 116 und 118 umfassen, die mit den Schaltern 101, 102, 103 bzw. 105 verbunden sind. In einigen Beispielen kann das Netzwerk 110 ein CXL-Netzwerk sein, und ein entsprechender Switch des Netzwerks 110 kann eine CXL-Komponente sein. In einem solchen Szenario kann die Kommunikation zwischen den Switches im Netzwerk 110 auf einer speichersemantischen Kommunikation beruhen. Ein entsprechendes Paket, das über das Netz 110 weitergeleitet wird, kann als Transaktion bezeichnet werden, und die entsprechende Dateneinheit kann ein Flit sein. In einigen anderen Beispielen kann das Netzwerk 110 ein Ethernet-, InfiniBand-, PCIe-, Gen-Z- oder ein anderes Netzwerk sein und ein entsprechendes Kommunikationsprotokoll verwenden, wie z. B. Internet Protocol (IP), FibreChannel over Ethernet (FCoE) oder ein anderes Protokoll.
  • In der Umgebung 100 können Kommunikationsressourcen, wie z. B. die interne Vermittlungsstruktur 106 in der Vermittlungsstelle 101 und die Kommunikationsverbindungen im Netz 110, von einer Vielzahl von Nachrichtenflüssen 132, 134, 136 und 138 gemeinsam genutzt werden, die von den Geräten 112, 114, 116 bzw. 118 ausgehen. Zum Beispiel kann der Nachrichtenfluss 132 von Gerät 112 zu Gerät 118 führen. In ähnlicher Weise kann der Nachrichtenfluss 134 von Gerät 114 zu Gerät 116 verlaufen. Schalter 101 kann ein vorübergehender Schalter für Nachrichtenfluss 136 sein. In der Regel können diese Nachrichtenflüsse unabhängig voneinander sein. Einem jeweiligen Nachrichtenfluss kann ein VC 121 zugewiesen werden, um eine feinkörnige Flusssteuerung und entsprechende Pufferressourcen für den Nachrichtenfluss zu ermöglichen. Somit kann VC 121 die Verwaltung von Flusssteuerungskrediten für ein Segment der Kommunikationsressourcen übernehmen. VC 121 kann es den Nachrichtenflüssen 132, 134, 136 und 138 ermöglichen, gemeinsame Kommunikationsressourcen zu nutzen, ohne sich gegenseitig zu stören.
  • Bei bestehenden Technologien können sich die Nachrichtenströme 132, 134, 136 und 138 VC 121 teilen. Infolgedessen kann die Vermittlungsstelle 101 Nachrichten der Nachrichtenströme 132 und 134 auf VC 121 empfangen. Eine solche Nachricht, wie z. B. die Nachrichten 146 und 142 der Nachrichtenflüsse 132 bzw. 134, kann mit einer Kennung des VC 121 versehen werden (z. B. kann die Nachricht 142 eine VC-Nummer des VC 121 enthalten). Wenn die Vermittlungsstelle 101 die Nachricht 142 über VC 121 an einem Eingangsport empfängt, kann die Vermittlungsstelle 101 folglich bereits Ressourcen, wie z. B. Flussguthaben, die mit VC 121 verbunden sind, für die Weiterleitung der Nachricht 146 verwendet haben. Daher kann es sein, dass die Vermittlungsstelle 101 keine Ressourcen hat, die mit VC 121 am Ausgangsport verbunden sind, um Nachricht 142 weiterzuleiten. Diese Knappheit von VC 121 zugeordneten Ressourcen kann auch in anderen Vermittlungsstellen im Netz 110 vorhanden sein und eine zirkuläre Ressourcenknappheit für VC 121 verursachen. Da keine dieser Vermittlungsstellen Nachrichten auf VC 121 weiterleiten kann, kann keine Vermittlungsstelle Guthaben für VC 121 erhalten. Die Nichtverfügbarkeit von Guthaben für VC 121 kann zu einem Deadlock für alle Nachrichtenflüsse auf VC 121 führen.
  • Um dieses Problem zu lösen, kann VC 121 bei einer Untergruppe von Vermittlungsstellen des Netzes 110 auf VC 124 umgeschaltet (oder neu zugeordnet) werden. Während des Betriebs kann der Switch 101 die Nachricht 142 auf dem Eingangs-VC 121 empfangen. Wenn die Nachricht 142 für eine Kanalumschaltung in Frage kommt, kann die Vermittlungsstelle 101 den Eingangs-VC 121 auf den Ausgangs-VC 124 umschalten (durch einen Pfeil gekennzeichnet). In einigen Beispielen kann die virtuelle Kanalumschaltung von VC 121 auf VC 124 in der Vermittlungsstruktur 106 erfolgen. Infolgedessen kann die Vermittlungsstelle 101, selbst wenn die mit VC 121 verbundenen Ressourcen für die Weiterleitung von Nachricht 146 erschöpft sind, VC 124 für die Weiterleitung von Nachricht 142 verwenden. Mit anderen Worten: Da die Vermittlungsstelle 101 für die Weiterleitung nicht auf denselben VC 121 angewiesen ist, kann die Vermittlungsstelle 101 die Nachricht 142 auch dann weiterleiten, wenn das Guthaben für VC 121 nicht mehr verfügbar ist. Auf diese Weise kann die Vermittlungsstelle 101 zirkuläre Deadlocks im Netz 110 vermeiden, da die zirkuläre Abhängigkeit von VC 121 im Netz 110 bei der Vermittlungsstelle 101 durch virtuelle Kanalumschaltung aufgehoben werden kann.
  • Um Interferenzen zwischen Nachrichtenflüssen zu vermeiden, kann die Vermittlungsstelle 101 außerdem zwischen dem Nachrichtenfluss 132, der von der Vermittlungsstelle 101 ausgeht (d. h. über einen Edge-Port vom Endgerät 112 empfangen wird), und dem Nachrichtenfluss 134, der die Vermittlungsstelle 101 passiert (d. h. über einen Inter-Switch-Port von der Vermittlungsstelle 102 empfangen wird), unterscheiden. Der Schalter 101 kann dann den Nachrichtenstrom 134 für die Kanalumschaltung auswählen. Mit anderen Worten, die Kanalumschaltung kann auf eingehende Nachrichtenströme vom benachbarten Schalter 102 angewendet werden. Andererseits kann die Vermittlungsstelle 101 weiterhin den VC 121 für den Nachrichtenfluss 132 verwenden, ohne die Kanalumschaltung anzuwenden. Wenn die Umgebung 100 komplex ist, kann die Vermittlungsstelle 101 mehr als zwei Sätze von VCs verwenden. Auf diese Weise kann die Vermittlungsstelle 101 eine verbesserte virtuelle Kanalumschaltung ermöglichen, um eine Weiterleitungsblockade im Netz 110 zu überwinden.
  • Ein bestehender Ansatz für die Kanalumschaltung kann auf der Durchführung der Kanalumschaltung von VC 121 zu VC 124 am Arbitrierungspunkt der Vermittlungsstelle 101 basieren. Der Arbitrierungspunkt für Switch 101 kann ein hardwarebasierter Arbiter 170 des Switches 101 sein. Der Arbiter 170 kann unter Verwendung des ASIC der Vermittlungsstelle 101 eingesetzt werden. Der Arbiter 170 kann zwischen mehreren internen Nachrichtenpfaden oder Puffern für einen Ausgangsanschluss (z. B. eine Ausgangsverbindung) des Switches 101 wählen. Arbiter 170 kann die Auswahl (oder Arbitrierung) auf der Grundlage der Verfügbarkeit von Ressourcen durchführen, wie z. B. Flow Credits, die mit VC 121 verbunden sind.
  • Erfolgt die Kanalumschaltung jedoch nach dem Arbitrierungspunkt, muss der Arbiter 170 über alle mit der Vermittlungsstelle 101 verbundenen VC-Sätze entscheiden. Die Erleichterung eines solchen Kanalumschaltprozesses kann dazu führen, dass der Arbiter 170 relativ komplex und ineffizient ist. Der Kanalumschaltprozess für die Nachricht 142 an der Vermittlungsstelle 101 kann weiter verbessert werden, indem der Prozess am Eingangspunkt der Nachricht 142 durchgeführt wird, wodurch eine erweiterte Arbitrierung für die Nachricht 142 vermieden wird. Infolgedessen kann der Arbiter 170 einfacher, kleiner und effizienter werden als der bisherige Ansatz.
  • 1B zeigt einen beispielhaften Switch, der eine erweiterte virtuelle Kanalumschaltung gemäß einem Aspekt der vorliegenden Anwendung unterstützt. In diesem Beispiel kann der Switch 101 über die Ports 172, 174 bzw. 176 mit den Switches 102, 104 und 105 verbunden werden. Switch 101 kann eine Multi-Warteschlange für ein entsprechendes Quellgerät verwalten. Eine Multi-Warteschlange kann die Konfiguration mehrerer Verkehrswarteschlangen für einen Netzwerkanschluss (oder eine Schnittstelle) ermöglichen. Beispielsweise kann der Switch 101 an den Anschlüssen 172, 174 bzw. 176 für die entsprechenden Quellen mehrere Warteschlangen 152, 154 und 156 unterhalten. Eine jeweilige Multi-Warteschlange kann eine dynamisch zugewiesene Multi-Warteschlange sein, die von den Nachrichtenströmen der Quelle gemeinsam genutzt wird. Die Multi-Warteschlange 152 kann die Zuweisung von Guthaben an die Vermittlungsstelle 102 für einzelne VCs ignorieren, solange die Gesamtzahl der Guthaben für die Vermittlungsstelle 102 mit der Größe des Speichers 162 (z. B. ein RAM-Modul) der Multi-Warteschlange 152 übereinstimmt. Daher sollte die Gesamtzahl der Gutschriften einer Speichergröße entsprechen, die kleiner oder gleich der Größe des Speichers 162 ist. Der Speicher 162 kann die virtualisierten Puffer für eine entsprechende VC bereitstellen.
  • Der erweiterte virtuelle Kanalvermittlungsprozess kann virtualisierte Puffer im Speicher 162 für die Nachricht 142 auf dem Eingangs-VC 121 verwenden. Da ein und derselbe Speicher 162 Puffer für einen bestimmten VC speichern kann, kann durch eine Liste (z. B. eine verknüpfte Liste) angegeben werden, welche Nachricht zu welchem VC gehört. Wenn die Vermittlungsstelle 101 beispielsweise die Nachricht 142 auf VC 121 empfängt, kann der Speicher 162 die Nachricht 142 speichern. Die Vermittlungsstelle 101 kann dann eine mit VC 121 verknüpfte Liste 164 mit dem Ort der Nachricht 142 im Speicher 162 aktualisieren. In ähnlicher Weise kann der Schalter 101, wenn er die Nachricht 144 auf VC 122 empfängt, die Nachricht 144 im Speicher 162 speichern. Die Vermittlungsstelle 101 kann dann eine dem VC 122 zugeordnete Liste 166 mit der Position der Nachricht 144 im Speicher 162 aktualisieren. Die Listen 164 und 166 können von der Hardware der Vermittlungsstelle 101 gepflegt werden. Auf diese Weise können die Puffer für VCs 121 und 122 virtuelle Puffer sein. Die Kreditverwaltung für die VCs 121 und 122 kann sich daher nicht auf die physische Adresse im Speicher 162 verlassen.
  • Da Nachricht 142 auf der Grundlage der für VC 121 zugewiesenen Guthaben empfangen werden kann, wird Nachricht 142 mit VC 121 (d. h. dem Eingangs-VC von Nachricht 142) gekennzeichnet, wenn die Nachricht in Speicher 162 gespeichert wird. Zum Beispiel kann die Vermittlungsstelle 101 ein Metadatenfeld im Eintrag des virtuellen Puffers im Speicher 162 verwenden, um Informationen zu speichern, die den VC 121 angeben (z. B. eine VC-Nummer). Die Vermittlungsstelle 101 kann dann auf der Grundlage einer Neuzuordnungstabelle feststellen, ob die Nachricht 142 für eine Kanalumschaltung in Frage kommt. Multi-Warteschlange 152 kann mit einem Register 150 ausgestattet sein, das eine Teilmenge von Einträgen 160 der Neuzuordnungstabelle speichern kann, die mit Port 172 verbunden sind. Ein entsprechender Eintrag der Einträge 160 kann eine Neuzuordnungsregel enthalten, die angeben kann, wie die Kanalumschaltung für eine Nachricht erfolgen soll, die über Anschluss 172 empfangen wird und über einen Ausgangsanschluss weitergeleitet werden soll.
  • Anhand der Einträge 160 kann die Vermittlungsstelle 101 einen Ausgangs-VC 124 für die Nachricht 142 bestimmen. Auf die gleiche Weise kann die Vermittlungsstelle 101 einen Ausgangs-VC 125 für die Nachricht 144 bestimmen. Die Einträge 160 können darauf hinweisen, dass die VCs 124 und 125 durch Hinzufügen eines vorbestimmten Offsets (z. B. eines vorbestimmten positiven ganzzahligen Werts) zu VC 121 bzw. 125 bestimmt werden können. Angenommen, die VCs 121 und 122 sind durch die VC-Nummern 0 bzw. 1 gekennzeichnet, und der Offset-Wert ist 3. Die VCs 124 und 125 können dann durch die VC-Nummern 3 bzw. 4 gekennzeichnet werden. Die Einträge 160 können auch anzeigen, wenn für einen Eingangs-VC keine Kanalumschaltung durchgeführt wird. Da die Einträge 160 im Register 150 gespeichert werden können, das dem Eingangsanschluss 172 zugeordnet ist. Daher kann die virtuelle Kanalumschaltung für Anschluss 172 (und die Anschlüsse 174 und 176) programmiert werden. Ist eine solche Flexibilität jedoch nicht erforderlich, kann eine Teilmenge der Kommunikationsressourcen der Vermittlungsstelle 101 für die Durchführung der Kanalumschaltung vorausgewählt werden. So kann beispielsweise eine Gruppe interner Nachrichtenpfade innerhalb der Vermittlungsstelle 101 immer die erweiterte virtuelle Kanalumschaltung durchführen.
  • Die Vermittlungsstelle 101 kann dann die Liste 168, die dem VC 124 (z. B. dem Ausgangs-VC der Nachricht 142) zugeordnet ist, mit dem Ort der Nachricht 142 aktualisieren. Der Ort kann ein Zeiger auf die physikalische Adresse der Nachricht 142 im Speicher 162 sein. Infolgedessen kann der Arbiter 170 auf der Grundlage von VC 124 entscheiden, ohne auf alle VCs zugreifen zu müssen. Wenn der Arbiter 170 die Weiterleitungsanforderung für die Nachricht 142 bewilligt (d. h. zur Weiterleitung auswählt), kann die Vermittlungsstelle 101 anhand des Tags der Nachricht 142 feststellen, dass die Nachricht 142 auf VC 121 empfangen wurde. Dementsprechend kann die Vermittlungsstelle 101 der Vermittlungsstelle 102 Guthaben für VC 121 zuweisen. Die Flow-Credits können dann für VC 121 für eine eingehende Nachricht zugewiesen werden, selbst wenn die Kanalumschaltung vor Erreichen des Arbiters 170 in der Vermittlungsstelle 101 durchgeführt wird. Auf diese Weise kann die Vermittlungsstelle 101 eine verbesserte virtuelle Kanalumschaltung ermöglichen, um Deadlocks in der Umgebung 100 zu vermeiden.
  • Die Einträge 160 können vom Routing-Modul erzeugt werden, das die Pfade in der Umgebung 100 bestimmt. Das Routing-Modul kann ein softwarebasierter Routing-Dämon sein, der auf der Grundlage eines Routing-Protokolls arbeitet. Die Einträge 160 erleichtern die Konfigurationssteuerung auf der Grundlage der Entscheidungsauswahlwerte (z. B. des Offset-Werts), die durch die Wiederzuordnungsregeln im Register 150 angegeben werden. In einigen Beispielen können die Entscheidungsauswahlwerte statisch bleiben, ohne sich dynamisch zu ändern, während etablierte Pfade aktiv bleiben. Darüber hinaus kann dieselbe Neuzuordnungsregel identisch auf einen entsprechenden Eingangs-VC in der Multi-Warteschlange 152 angewendet werden. Folglich kann eine einzige Neuzuordnungsregel für den gesamten Verkehr von einem Eingangsanschluss zu einem Ausgangsanschluss gelten. Im Beispiel in 1 B wird die Umschaltung des virtuellen Kanals auf der Grundlage der Multi-Warteschlange 152 durchgeführt, die ein Eingangspuffer ist. Die virtuelle Kanalumschaltung kann in der Vermittlungsstelle 101 auch auf der Grundlage eines Ausgangspuffers 158 (oder eines anderen Ansatzes) durchgeführt werden, der die Neuzuordnung von VCs vor dem Arbitrierungspunkt erleichtert. Mit anderen Worten: Die virtuelle Kanalumschaltung für die Nachricht 142 kann an einer beliebigen Stelle in der Vermittlungsstelle 101 erfolgen, bevor die Nachricht 142 den Arbitrator 170 erreicht.
  • 2 illustriert eine beispielhafte Deadlock-Vermeidung unter Verwendung eines erweiterten virtuellen Kanalwechsels gemäß einem Aspekt der vorliegenden Anwendung. Wie in Verbindung mit 1A beschrieben, können sich die Nachrichtenflüsse 132, 134, 136 und 138 den VC 121 teilen. Der Nachrichtenfluss 132 kann zwischen den Endgeräten 112 und 118 erfolgen, und der Nachrichtenfluss 134 kann zwischen den Endgeräten 114 und 116 erfolgen. Infolgedessen kann die Vermittlungsstelle 101 die Nachrichten 202 und 204 der Nachrichtenflüsse 132 bzw. 134 auf VC 121 empfangen. Wenn die Vermittlungsstelle 101 die Nachricht 204 des Nachrichtenflusses 134 empfängt, kann der vorgesehene Pfad für die Nachricht 204 über die Vermittlungsstelle 103 zum Endgerät 116 führen. Die Vermittlungsstelle 101 kann jedoch alle derzeit verfügbaren Weiterleitungsressourcen, wie z. B. Flussguthaben, die mit VC 121 verbunden sind, verwendet haben, um die Nachricht 202 an die Vermittlungsstelle 103 weiterzuleiten. Infolgedessen ist der Switch 101 möglicherweise nicht in der Lage, die Nachricht 204 weiterzuleiten.
  • Der Schalter 103 kann auch eine Nachricht 206 des Nachrichtenflusses 136 empfangen. Wenn die Vermittlungsstelle 103 die Nachricht 202 empfängt, kann der vorgesehene Weg für die Nachricht 202 über die Vermittlungsstelle 105 zum Endgerät 118 führen. Es kann jedoch sein, dass die Vermittlungsstelle 103 alle derzeit verfügbaren, mit VC 121 verbundenen Flussguthaben verbraucht hat, um die Nachricht 206 an die Vermittlungsstelle 105 weiterzuleiten. Infolgedessen kann die Vermittlungsstelle 103 die Nachricht 202 nicht weiterleiten. In ähnlicher Weise kann die Vermittlungsstelle 105 eine Nachricht 208 des Nachrichtenflusses 138 empfangen. Wenn Schalter 105 die Nachricht 206 empfängt, kann der beabsichtigte Pfad für die Nachricht 206 das Endgerät 114 über Schalter 102 sein. Die Vermittlungsstelle 105 kann jedoch alle derzeit verfügbaren Flussguthaben, die mit VC 121 verbunden sind, verbraucht haben, um die Nachricht 208 an die Vermittlungsstelle 102 weiterzuleiten. Infolgedessen kann die Vermittlungsstelle 105 nicht in der Lage sein, die Nachricht 206 weiterzuleiten. Da der Schalter 102 jedoch möglicherweise alle derzeit verfügbaren, mit VC 121 verknüpften Durchflussguthaben verwendet hat, um Nachricht 204 an den Schalter 101 weiterzuleiten, kann der Schalter 102 möglicherweise nicht in der Lage sein, Nachricht 208 weiterzuleiten.
  • In einem solchen Szenario können sich die Nachrichten 202, 204, 206 und 208 in den entsprechenden Puffern der Vermittlungsstellen 103, 101, 105 bzw. 102 befinden. Da keine dieser Vermittlungsstellen Nachrichten über VC 121 weiterleiten kann, kann keine der Vermittlungsstellen 103, 101, 105 und 102 Guthaben für VC 121 erhalten. In diesem Fall kann die zirkuläre Nichtverfügbarkeit von Guthaben für VC 121 zu einem Deadlock für die Nachrichtenflüsse 132, 134, 136 und 138 auf VC 121 führen. Die erweiterte virtuelle Kanalumschaltung an den Vermittlungsstellen 101, 102, 103 und 105 kann dieses Problem lösen, indem die Nachrichten 202, 204, 206 und 208 an einen anderen Ausgangs-VC, wie z. B. VC 124, weitergeleitet werden. Auch wenn Switch 101 möglicherweise keine Guthaben für VC 121 hat, kann Switch 101 Guthaben für VC 124 verwenden, um Nachricht 204 über den vorgesehenen Pfad an Switch 103 weiterzuleiten. In ähnlicher Weise können die Vermittlungsstellen 103, 105 und 102 Guthaben für VC 124 verwenden, um Nachrichten 202, 206 bzw. 208 über die entsprechenden vorgesehenen Pfade weiterzuleiten. Obwohl in 2 nicht dargestellt, könnten die Nachrichten 202, 204, 206 und 208 vor der Weiterleitung an die Endgeräte 118, 116, 114 und 112 durch die Vermittlungsstellen 105, 103, 102 bzw. 101 optional auf VC 121 zurückgeschaltet werden.
  • 3 zeigt eine verbesserte virtuelle Kanalumschaltung an einem Knotenpunkt gemäß einem Aspekt der vorliegenden Anwendung. Switch 101 kann mit einer Vielzahl von Ports 302, 304, 306 und 308 ausgestattet sein. Während des Betriebs kann der Eingangsanschluss 302 Nachrichten 342 und 344 auf VC 321 empfangen. In ähnlicher Weise kann der Eingangsanschluss 304 Nachrichten 346 und 348 auf VC 321 empfangen. Die Nachrichten 342 und 346 können über den Ausgangsanschluss 308 weitergeleitet werden, die Nachrichten 344 und 348 über den Ausgangsanschluss 306. Zur Erleichterung einer verbesserten Umschaltung des virtuellen Kanals für diese Nachrichten kann der Switch 101 einen Neuzuordnungsmechanismus verwenden, um einen Ausgangs-VC zu bestimmen. Beispiele für den Remapping-Mechanismus sind unter anderem das Nachschlagen in einer Datenstruktur (z. B. einer Tabelle), die eine Zuordnung zwischen den Eingangs- und Ausgangs-VCs enthält, die Anwendung einer mathematischen Berechnung auf den Eingangs-VC (z. B. Addition, Subtraktion, Multiplikation usw.), die Auswahl eines VC-Satzes (z. B. Auswahl eines Satzes von Ausgangs-VCs für einen Satz von Eingangs-VCs) und die eins-zu-eins Zuordnung korrelierter Werte. In diesem Beispiel kann der Switch 101 eine Umschlüsselungstabelle 300 führen, die eine Reihe von Umschlüsselungsregeln enthalten kann, die angeben, wie die Kanalumschaltung für die Kombinationen der Eingangsports 302 und 304 und der Ausgangsports 306 und 308 durchgeführt werden soll.
  • Für Nachrichten mit Eingangsanschluss 302 und Ausgangsanschluss 306 kann die Neuzuordnungsregel der Tabelle 300 angeben, dass ein Ausgangs-VC durch Hinzufügen eines Offset-Wertes von „X“ zum Eingangs-VC bestimmt werden sollte. Dabei kann X einen vorbestimmten positiven oder negativen ganzzahligen Wert darstellen, der zu der VC-Nummer, die den Eingangs-VC angibt, addiert werden kann. In ähnlicher Weise kann die Zuordnungsregel für den Eingangsanschluss 304 und den Ausgangsanschluss 308 angeben, dass ein Ausgangs-VC durch Hinzufügen eines Offset-Werts von „Y“ bestimmt werden sollte. Die Werte von X und Y können gleich sein oder durch einen Wert von „Z” getrennt werden, wodurch sichergestellt werden kann, dass es keinen Konflikt bei den bestimmten Ausgangs-VCs gibt. Für alle anderen Eingangs- und Ausgangskombinationen kann die Neuzuordnungsregel angeben, dass keine Neuzuordnung vorgenommen werden soll. Für solche Kombinationen können die Eingangs- und Ausgangs-VCs gleich bleiben.
  • Dementsprechend bleiben für Nachrichten vom Eingangsanschluss 302 zum Ausgangsanschluss 308 und vom Eingangsanschluss 304 zum Ausgangsanschluss 306 die Eingangs- und Ausgangs-VCs dieselben. Andererseits können die Werte von X und Y in diesem Beispiel 3 sein. Daher werden die Eingangs-VCs 321, 322 und 323 für Nachrichten vom Eingangsanschluss 302 zum Ausgangsanschluss 306 und vom Eingangsanschluss 304 zum Ausgangsanschluss 308 auf die Ausgangs-VCs 324, 325 bzw. 326 umgeschaltet (oder neu zugeordnet). Da die VCs 324, 325 und 326 als Ausgangs-VCs verwendet werden, dürfen die VCs 324, 325 und 326 außerdem nicht als Eingangs-VCs für Nachrichten vom Eingangsanschluss 302 zum Ausgangsanschluss 306 und vom Eingangsanschluss 304 zum Ausgangsanschluss 308 verwendet werden. Aufgrund der Regeln für die Neuzuordnung verbleiben die Nachrichten 342 und 348 auf VC 321. Die Nachrichten 344 und 346 werden jedoch auf VC 324 umgeschaltet, bevor sie den Arbiter 170 erreichen. Folglich kann der Arbiter 170 die Nachrichten 342, 344, 346 und 348 auf der Grundlage der VCs 321, 324, 324 bzw. 321 an den entsprechenden Ausgangsports vermitteln. Auf diese Weise kann dieselbe Remapping-Regel identisch auf einen entsprechenden Eingangs-VC angewendet werden. Daher kann eine einzige Neuzuordnungsregel auf den gesamten Verkehr von einem Eingangsport zu einem Ausgangsport angewandt werden. Wie oben beschrieben, kann die VC-Zuordnung die Zuweisung eines neuen VC ohne Verwendung einer Tabelle beinhalten. Darüber hinaus kann die VC-Zuordnung auf einem oder mehreren Zuordnungsalgorithmen beruhen, wie z. B. Subtraktion, Multiplikation, VC-Satz-Auswahl, eins-zu-eins-Zuordnung korrelierter Werte und jedem anderen Zuordnungsalgorithmus.
  • 4 zeigt ein Flussdiagramm, das den Prozess eines Knotens veranschaulicht, der ein über einen Eingangs-VC empfangenes Paket in Übereinstimmung mit einem Aspekt der vorliegenden Anwendung verarbeitet. Während des Betriebs kann der Knoten eine Nachricht über einen Eingangs-VC über einen Eingangsanschluss empfangen (Vorgang 402). Der Knoten kann dann einen Ort in der Multi-Warteschlange bestimmen, die mit dem Eingangsanschluss verbunden ist (Vorgang 404), und die Nachricht an dem Ort der Multi-Warteschlange speichern (Vorgang 406). Der Knoten kann die Nachricht auch mit der Eingangs-VC kennzeichnen (Vorgang 408). Der Knoten kann die VC-Nummer als Metadaten in einem mit der Nachricht verbundenen Feld für die Kennzeichnung speichern. Auch wenn der Prozess in diesem Beispiel anhand eines Eingangspuffers beschrieben wird, kann die Umschaltung des virtuellen Kanals für die Nachricht an einem beliebigen Ort (z. B. einem Ausgangspuffer) in der Vermittlungsstelle erfolgen, bevor die Nachricht den Arbitrierungspunkt erreicht.
  • 5A zeigt ein Flussdiagramm, das den Prozess eines Knotens veranschaulicht, der einen Eingangs-VC eines Pakets auf einen Ausgangs-VC umstellt, in Übereinstimmung mit einem Aspekt der vorliegenden Anwendung. Während des Betriebs kann der Knoten den mit der Nachricht verbundenen Eingangs-VC bestimmen (Vorgang 502) und feststellen, ob die virtuelle Kanalumschaltung aktiviert ist (Vorgang 504). Wenn die virtuelle Kanalumschaltung aktiviert ist, kann der Knoten einen mit der Nachricht verknüpften Ausgangsanschluss bestimmen (Vorgang 506) und eine mit den Eingangs- und Ausgangsanschlüssen verknüpfte Wiederzuordnungsregel erhalten (Vorgang 508).
  • Der Knoten kann dann feststellen, ob eine Neuzuordnung für den Eingangs-VC erforderlich ist (Vorgang 510). Wenn eine Neuzuordnung erforderlich ist, kann der Knoten den Ausgangs-VC für die Nachricht auf der Grundlage der Neuzuordnungsregel bestimmen (Vorgang 514). Wenn die virtuelle Kanalumschaltung nicht aktiviert ist (Vorgang 504) oder eine Neuzuordnung nicht erforderlich ist (Vorgang 510), kann der Knoten den Eingangs-VC als Ausgangs-VC beibehalten (Vorgang 512). Nach der Bestimmung des Ausgangs-VC (Vorgang 512 oder 514) kann der Knoten die Liste des Ausgangs-VC mit der Position der Nachricht in der Mehrfachwarteschlange aktualisieren (Vorgang 516).
  • 5B zeigt ein Flussdiagramm, das den Prozess eines Knotens veranschaulicht, der ein Paket über einen Ausgangs-VC weiterleitet, in Übereinstimmung mit einem Aspekt der vorliegenden Anwendung. Während des Betriebs kann der Knoten feststellen, dass der Ausgangs-VC für eine Nachricht aktualisiert wird (Vorgang 552) und für die Nachricht über den Ausgangs-VC als Ausgangsanschluss entscheiden (Vorgang 554). Der Knoten kann feststellen, ob die Weiterleitungsressourcen (z. B. Flow Credits) für die Nachricht verfügbar sind (Vorgang 556). Wenn die Weiterleitungsressourcen für die Nachricht nicht verfügbar sind, kann der Knoten die Arbitrierung für die Nachricht für den Ausgangs-VC als Ausgangsanschluss fortsetzen (Vorgang 554).
  • Sind hingegen die Weiterleitungsressourcen für die Nachricht verfügbar, kann der Knoten einen mit der Nachricht verbundenen Eingangs-VC bestimmen (Vorgang 558). Der Knoten kann den Eingangs-VC aus den mit der Nachricht in der Multi-Warteschlange gespeicherten Metadaten bestimmen. Der Knoten kann dann eine Gutschrift für den Eingangs-VC zurückgeben und die Gutschrift an den vorgelagerten Knoten senden (Vorgang 560). Anschließend kann der Knoten die Nachricht über den Ausgangsanschluss an den Ausgangs-VC senden (Vorgang 562).
  • 6 zeigt ein Beispiel für einen Switch mit erweiterter Unterstützung für die Vermittlung virtueller Kanäle gemäß einem Aspekt der vorliegenden Anwendung. In diesem Beispiel kann ein Switch 600 eine Anzahl von Kommunikationsanschlüssen 602, einen Nachrichtenprozessor 610 und eine Speichereinrichtung 650 umfassen. Switch 600 kann auch Switch-Hardware 660 (z. B. Verarbeitungshardware des Switches 600, wie z. B. dessen ASIC, FPGA oder Prozessorchips) enthalten, die Informationen enthält, auf deren Grundlage Switch 600 Nachrichten verarbeitet (z. B. Ausgangsports für Nachrichten oder Pakete bestimmt). Der Nachrichtenprozessor 610 extrahiert und verarbeitet Header-Informationen aus den empfangenen Nachrichten. Der Nachrichtenprozessor 610 kann einen Switch-Identifikator (z. B. eine MAC-Adresse, eine IP-Adresse und/oder ein anderes Adressfeld) identifizieren, der dem Switch 600 im Header einer Nachricht zugeordnet ist.
  • Die Kommunikationsanschlüsse 602 können Kommunikationskanäle zwischen den Switches zur Kommunikation mit anderen Switches und/oder Benutzergeräten umfassen. Die Kommunikationskanäle können über einen normalen Kommunikationsanschluss implementiert werden und auf einem beliebigen offenen oder proprietären Format basieren. Die Kommunikationsanschlüsse 602 können einen oder mehrere Ethernet-Anschlüsse umfassen, die in einem Ethernet-Header gekapselte Rahmen empfangen können. Die Kommunikationsanschlüsse 602 können auch einen oder mehrere IP-Anschlüsse umfassen, die in der Lage sind, IP-Pakete zu empfangen. Ein IP-Port kann ein IP-Paket empfangen und kann mit einer IP-Adresse konfiguriert werden. Der Paketprozessor 610 kann Ethernet-Rahmen und/oder IP-Pakete verarbeiten. Ein entsprechender Anschluss der Kommunikationsanschlüsse 602 kann als Eingangsanschluss und/oder als Ausgangsanschluss fungieren.
  • Die Vermittlungsstelle 600 kann Informationen im Zusammenhang mit der Vermittlung virtueller Kanäle in einem Speichergerät 650 (z. B. in einer Datenbank 652) speichern. Bei der Datenbank 652 kann es sich um eine relationale Datenbank handeln, die auf einer oder mehreren Instanzen eines Datenbankmanagementsystems (DBMS) oder auf einfachen, in der Vermittlungsstelle 600 gespeicherten Informationen laufen kann. In der Datenbank 652 können Informationen gespeichert werden, die mit dem Routing, der Konfiguration und den Schnittstellen des Schalters 600 verbunden sind. In der Datenbank 652 kann auch eine Umschlüsselungstabelle gespeichert werden. Die Vermittlungsstelle 600 kann einen Kanalvermittlungslogikblock 630 enthalten, der eine verbesserte virtuelle Kanalvermittlung an der Vermittlungsstelle 600 ermöglichen kann. Der Kanalvermittlungslogikblock 630 kann einen Eingangslogikblock 632, einen Neuzuordnungslogikblock 634 und einen Ausgangslogikblock 636 enthalten.
  • Der Eingangslogikblock 632 kann eine Nachricht in einer Multi-Warteschlange speichern, die am Schalter 600 auf einem Eingangs-VC empfangen wurde. Der Eingangslogikblock 632 kann die Nachricht auch mit dem Eingangs-VC kennzeichnen. Der Remapping-Logikblock 634 kann einen Ausgangs-VC auf der Grundlage einer entsprechenden Remapping-Regel bestimmen. Der Logikblock 634 für die Neuzuordnung kann auch die mit dem Ausgangs-VC verbundene Liste aktualisieren. Der Ausgangslogikblock 636 kann auf der Grundlage des Ausgangs-VCs arbitrieren. Der Ausgangslogikblock 636 kann ferner den Eingangs-VC für die Nachricht auf der Grundlage von Tagging-Informationen bestimmen und Guthaben für den Eingangs-VC zuweisen.
  • Die in dieser ausführlichen Beschreibung beschriebenen Datenstrukturen und der Code werden in der Regel auf einem computerlesbaren Speichermedium gespeichert, bei dem es sich um ein beliebiges Gerät oder Medium handeln kann, das Code und/oder Daten zur Verwendung durch ein Computersystem speichern kann. Das computerlesbare Speichermedium umfasst unter anderem Flip/Flops, Latches, Register, flüchtige Speicher, nichtflüchtige Speicher, magnetische und optische Speichervorrichtungen wie Disketten, Magnetbänder, CDs (Compact Discs), DVDs (Digital Versatile Discs oder Digital Video Discs) oder andere Medien, die in der Lage sind, heute bekannte oder später entwickelte computerlesbare Medien zu speichern.
  • Die im Abschnitt „Detaillierte Beschreibung“ beschriebenen Methoden und Prozesse können als Code und/oder Daten verkörpert werden, die wie oben beschrieben in einem computerlesbaren Speichermedium gespeichert werden können. Wenn ein Computersystem den auf dem computerlesbaren Speichermedium gespeicherten Code und/oder die Daten liest und ausführt, führt das Computersystem die Methoden und Prozesse aus, die als Datenstrukturen und Code verkörpert und in dem computerlesbaren Speichermedium gespeichert sind.
  • Die hier beschriebenen Methoden und Prozesse können von Hardware-Modulen oder -Geräten ausgeführt werden und/oder in diesen enthalten sein. Zu diesen Modulen oder Geräten können unter anderem ein anwendungsspezifischer integrierter Schaltkreis (ASIC-Chip), ein feldprogrammierbares Gate-Array (FPGA), ein dedizierter oder gemeinsam genutzter Prozessor, der ein bestimmtes Softwaremodul oder ein Stück Code zu einem bestimmten Zeitpunkt ausführt, und/oder andere heute bekannte oder später entwickelte programmierbare logische Geräte gehören. Wenn die Hardware-Module oder -Geräte aktiviert werden, führen sie die in ihnen enthaltenen Methoden und Prozesse aus.
  • Die vorstehenden Beschreibungen von Beispielen der vorliegenden Erfindung wurden nur zur Veranschaulichung und Beschreibung vorgelegt. Sie erheben keinen Anspruch auf Vollständigkeit und schränken diese Offenbarung nicht ein. Dementsprechend werden viele Modifikationen und Variationen für den Fachmann auf dem Gebiet der Technik offensichtlich sein. Der Umfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche definiert.

Claims (20)

  1. Ein Verfahren, das Folgendes umfasst: Zuweisung von Flusssteuerungsguthaben für einen ersten virtuellen Kanal von einem Knoten einer verteilten Rechenumgebung an einen stromaufwärts gelegenen Knoten in der verteilten Rechenumgebung; Empfangen einer Nachricht über einen Nachrichtenpfad, der den stromaufwärts gelegenen Knoten umfasst, auf dem ersten virtuellen Kanal auf der Grundlage der zugewiesenen Flusssteuerungsguthaben; Speicherung der Nachricht in einer Warteschlange, die mit einem Eingangsanschluss verbunden ist; Bestimmen, ob die Nachricht ein Kandidat zum Ändern des ersten virtuellen Kanals am Knoten ist, basierend auf einer Abbildungsregel, die mit dem Eingangsanschluss verbunden ist; als Reaktion darauf, dass die Nachricht ein Kandidat ist, Zuordnen der Nachricht zu einem zweiten virtuellen Kanal, der in der Zuordnungsregel in der Warteschlange angegeben ist; und Senden der Nachricht aus der Warteschlange über den zweiten virtuellen Kanal.
  2. Das Verfahren nach Anspruch 1, wobei der Nachrichtenpfad eine Kommunikationsverbindung und eine interne Vermittlungsstruktur eines Knotens umfasst.
  3. Das Verfahren nach Anspruch 1, das ferner das Aktualisieren einer Liste, die dem zweiten virtuellen Kanal zugeordnet ist, mit einer Position der Nachricht in der Warteschlange umfasst, wobei ein entsprechender Eintrag der Liste einer Nachricht entspricht, die dem zweiten virtuellen Kanal zugeordnet ist.
  4. Das Verfahren nach Anspruch 1, ferner umfassend die Bestimmung des ersten virtuellen Kanals als virtueller Eingangskanal für die Nachricht auf der Grundlage von Metadaten, die in der Warteschlange in Verbindung mit der Nachricht gespeichert sind.
  5. Das Verfahren nach Anspruch 4 umfasst ferner: Zuteilung von Flussguthaben für den ersten virtuellen Kanal; und die Übermittlung des Guthabens an den vorgelagerten Knoten.
  6. Das Verfahren nach Anspruch 1, wobei die Nachricht dem zweiten virtuellen Kanal zugeordnet wird, bevor die Nachricht einen Arbitrierungspunkt in dem Knoten erreicht.
  7. Das Verfahren nach Anspruch 6 umfasst ferner die Entscheidungsfindung auf der Grundlage des zweiten virtuellen Kanals zur Weiterleitung der Nachricht.
  8. Das Verfahren nach Anspruch 1, das ferner die Bestimmung des zweiten virtuellen Kanals auf der Grundlage der Anwendung eines Versatzwertes in der Abbildungsregel auf den ersten virtuellen Kanal umfasst.
  9. Das Verfahren nach Anspruch 1, wobei der erste virtuelle Kanal zu einem ersten Satz von virtuellen Kanälen gehört und der zweite virtuelle Kanal zu einem zweiten Satz von virtuellen Kanälen gehört, und wobei die Abbildungsregel eine Kanalumschaltung von dem ersten Satz von virtuellen Kanälen zu dem zweiten Satz von virtuellen Kanälen anzeigt.
  10. Ein nicht-transitorisches, computerlesbares Speichermedium, das Befehle speichert, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen, ein Verfahren durchzuführen, wobei das Verfahren umfasst: Zuweisung von Flusssteuerungsguthaben für einen ersten virtuellen Kanal von einem Knoten einer verteilten Rechenumgebung an einen stromaufwärts gelegenen Knoten in der verteilten Rechenumgebung; Empfangen einer Nachricht über einen Nachrichtenpfad, der den stromaufwärts gelegenen Knoten umfasst, auf dem ersten virtuellen Kanal auf der Grundlage der zugewiesenen Flusssteuerungsguthaben; Speicherung der Nachricht in einer Warteschlange, die mit einem Eingangsanschluss verbunden ist; Bestimmen, ob die Nachricht ein Kandidat zum Ändern des ersten virtuellen Kanals am Knoten ist, basierend auf einer Abbildungsregel, die mit dem Eingangsanschluss verbunden ist; als Reaktion darauf, dass die Nachricht ein Kandidat ist, Zuordnen der Nachricht zu einem zweiten virtuellen Kanal, der in der Zuordnungsregel in der Warteschlange angegeben ist; und Senden der Nachricht aus der Warteschlange über den zweiten virtuellen Kanal.
  11. Das nicht-transitorische, computerlesbare Speichermedium nach Anspruch 10, wobei der Nachrichtenpfad eine Kommunikationsverbindung und eine interne Vermittlungsstruktur eines Knotens umfasst.
  12. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 10, wobei das Verfahren ferner das Aktualisieren einer Liste, die dem zweiten virtuellen Kanal zugeordnet ist, mit einer Position der Nachricht in der Warteschlange umfasst, wobei ein entsprechender Eintrag der Liste einer Nachricht entspricht, die dem zweiten virtuellen Kanal zugeordnet ist.
  13. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 10, wobei das Verfahren ferner das Bestimmen des ersten virtuellen Kanals als virtueller Eingangskanal für die Nachricht auf der Grundlage von Metadaten umfasst, die in der Warteschlange in Verbindung mit der Nachricht gespeichert sind.
  14. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 13, wobei das Verfahren weiterhin umfasst: Zuteilung von Flussguthaben für den ersten virtuellen Kanal; und die Übermittlung des Guthabens an den vorgelagerten Knoten.
  15. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 10, wobei die Nachricht dem zweiten virtuellen Kanal zugeordnet wird, bevor die Nachricht einen Arbitrierungspunkt in dem Knoten erreicht.
  16. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 15, wobei das Verfahren ferner das Arbitrieren auf der Grundlage des zweiten virtuellen Kanals zum Weiterleiten der Nachricht umfasst.
  17. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 10, wobei das Verfahren ferner die Bestimmung des zweiten virtuellen Kanals auf der Grundlage der Anwendung eines Offset-Wertes in der Abbildungsregel auf den ersten virtuellen Kanal umfasst.
  18. Das nicht-transitorische computerlesbare Speichermedium nach Anspruch 10, wobei der erste virtuelle Kanal zu einem ersten Satz von virtuellen Kanälen gehört und der zweite virtuelle Kanal zu einem zweiten Satz von virtuellen Kanälen gehört, und wobei die Abbildungsregel eine Kanalumschaltung von dem ersten Satz von virtuellen Kanälen zu dem zweiten Satz von virtuellen Kanälen anzeigt.
  19. Ein Computersystem, bestehend aus: einen Prozessor; einen Ausgangslogikblock, um von dem Computersystem aus Flusssteuerungsguthaben für einen ersten virtuellen Kanal an einen stromaufwärts gelegenen Knoten in der verteilten Rechenumgebung zuzuweisen; einen Logikblock für den Eingang: über einen Nachrichtenpfad, der den stromaufwärts gelegenen Knoten umfasst, eine Nachricht auf dem ersten virtuellen Kanal auf der Grundlage der zugewiesenen Flusssteuerungsguthaben empfangen; und die Nachricht in einer Warteschlange speichern, die mit einem Eingangsanschluss verbunden ist; einen Logikblock für die Neuzuordnung: Bestimmen, ob die Nachricht ein Kandidat zum Ändern des ersten virtuellen Kanals an dem Knoten ist, basierend auf einer Abbildungsregel, die mit dem Eingangsanschluss verbunden ist; und als Reaktion darauf, dass die Nachricht ein Kandidat ist, die Nachricht mit einem zweiten virtuellen Kanal zu verknüpfen, der in der Zuordnungsregel in der Warteschlange angegeben ist; und wobei der Ausgangslogikblock ferner dazu dient, die Nachricht aus der Warteschlange über den zweiten virtuellen Kanal zu senden.
  20. Das Computersystem nach Anspruch 19, wobei der Wiederzuordnungslogikblock ferner dazu dient, eine dem zweiten virtuellen Kanal zugeordnete Liste mit einer Position der Nachricht in der Warteschlange zu aktualisieren, wobei ein entsprechender Eintrag der Liste einer dem zweiten virtuellen Kanal zugeordneten Nachricht entspricht.
DE102022108274.1A 2022-02-15 2022-04-06 Verbesserte virtuelle kanalumschaltung Pending DE102022108274A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/672,481 US11888751B2 (en) 2022-02-15 2022-02-15 Enhanced virtual channel switching
US17/672,481 2022-02-15

Publications (1)

Publication Number Publication Date
DE102022108274A1 true DE102022108274A1 (de) 2023-08-17

Family

ID=87430469

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022108274.1A Pending DE102022108274A1 (de) 2022-02-15 2022-04-06 Verbesserte virtuelle kanalumschaltung

Country Status (3)

Country Link
US (1) US11888751B2 (de)
CN (1) CN116647883B (de)
DE (1) DE102022108274A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230254253A1 (en) * 2022-02-09 2023-08-10 Samsung Electronics Co., Ltd. Message split-aggregation for multi-stage electrical interconnection network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905729A (en) * 1995-07-19 1999-05-18 Fujitsu Network Communications, Inc. Mapping a data cell in a communication switch
KR100451258B1 (ko) * 2002-06-12 2004-10-06 (주)씨앤에스 테크놀로지 디지털 방송의 가상 채널 맵핑 및 채널 튜닝방법
US7656898B2 (en) * 2003-09-18 2010-02-02 Brocade Communications Systems, Inc. Virtual channel remapping
US7856026B1 (en) * 2005-06-28 2010-12-21 Altera Corporation Configurable central memory buffered packet switch module for use in a PLD
US8625427B1 (en) * 2009-09-03 2014-01-07 Brocade Communications Systems, Inc. Multi-path switching with edge-to-edge flow control
US9515946B2 (en) * 2014-07-01 2016-12-06 Netronome Systems, Inc. High-speed dequeuing of buffer IDS in frame storing system
CN107005489B (zh) * 2014-12-29 2021-02-02 甲骨文国际公司 用于支持分组交换的系统、方法、介质和设备
JP6772139B2 (ja) * 2014-12-29 2020-10-21 オラクル・インターナショナル・コーポレイション ネットワーキング装置において効率的な仮想出力キュー(voq)リソース活用をサポートするためのシステムおよび方法
US20200076742A1 (en) * 2018-08-28 2020-03-05 Hewlett Packard Enterprise Development Lp Sending data using a plurality of credit pools at the receivers
US10693811B2 (en) * 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration

Also Published As

Publication number Publication date
CN116647883B (zh) 2024-08-02
US20230262001A1 (en) 2023-08-17
CN116647883A (zh) 2023-08-25
US11888751B2 (en) 2024-01-30

Similar Documents

Publication Publication Date Title
DE69522666T2 (de) Netzwerk mit sicherer, schneller paketvermittlung und garantierter servicequalität
DE112008002550B4 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE112020002484T5 (de) System und verfahren zur erleichterung der feinkörnigen flusssteuerung in einer netzwerkschnittstellensteuerung (nic)
DE102015108145B4 (de) Lokale Dienstverkettung mit virtuellen Maschinen und virtualisierten Behältern in software-definierter Vernetzung
DE68926650T2 (de) Hochgeschwindigkeitspaketvermittlungsknotenentwurf
DE60301029T2 (de) Replikationsprozess für IP-Mehrfachsendung und Vorrichtung hierfür
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE112012002080B4 (de) Switching-Netzwerk-Architektur gemäss dem Distributed Fabric Protocol (DFP)
DE69332347T2 (de) Koppelnetz mit einem Reservierungsring
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE69836812T2 (de) Verfahren und gerät zum dynamischen warteschlange-abschätzen
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69935608T2 (de) Verfahren und system zur multiprotokoll-konversionshilfe für einen netzbeschleuniger
DE112016005924T5 (de) Beschleunigte Netzwerkpaketverarbeitung
DE102013208431B4 (de) Großer verteilter Switch auf Fabric-Basis unter Verwendung virtueller Switches und virtueller Steuereinheiten
DE112012004957B4 (de) Flexibles und skalierbares Enhanced-Transmission-Selection-Verfahren für Netzwerkstrukturen
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE69332324T2 (de) Parallele Multi-Bit Koppelnetze
DE102014117460A1 (de) Programmierbares verteiltes Networking
DE60112011T2 (de) Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen
CN104468401A (zh) 一种报文处理方法和装置
DE102021207394A1 (de) Zusammenführen von paketen auf der grundlage von hinweisen, die vom netzwerkadapter erzeugt werden
DE112020003022T5 (de) Interconnect-Adressbasierte QOS-Regulierung
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US

R082 Change of representative

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB - PATENT- , DE

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE

R012 Request for examination validly filed