DE102017000530B4 - Skalierbare Maschinennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips - Google Patents

Skalierbare Maschinennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips Download PDF

Info

Publication number
DE102017000530B4
DE102017000530B4 DE102017000530.3A DE102017000530A DE102017000530B4 DE 102017000530 B4 DE102017000530 B4 DE 102017000530B4 DE 102017000530 A DE102017000530 A DE 102017000530A DE 102017000530 B4 DE102017000530 B4 DE 102017000530B4
Authority
DE
Germany
Prior art keywords
cells
chip
pass
management unit
memory management
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
DE102017000530.3A
Other languages
English (en)
Other versions
DE102017000530A1 (de
Inventor
Surendra Anubolu
Mohan Kalkunte
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 US15/063,387 external-priority patent/US10102168B2/en
Application filed by Avago Technologies International Sales Pte Ltd filed Critical Avago Technologies International Sales Pte Ltd
Publication of DE102017000530A1 publication Critical patent/DE102017000530A1/de
Application granted granted Critical
Publication of DE102017000530B4 publication Critical patent/DE102017000530B4/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

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

Abstract

Vorrichtung (210A), die Folgendes umfasst:eine zum Puffern erster Zellen zur Übertragung konfigurierte Speicherverwaltungseinheit (214A);eine Austrittszellenschaltung (215A), die wenigstens eine erste Warteschlange (505A) undeine zweite Warteschlange (505B) umfasst, wobei die Austrittszellenschaltung (215A) für Folgendes konfiguriert ist:Einreihen der ersten Zellen aus der Speicherverwaltungseinheit (214A) in die erste Warteschlange (505A);Einreihen von zweiten Zellen aus einer anderen Speicherverwaltungseinheit (214B) einer anderen Vorrichtung (210B) in die zweite Warteschlange (505B); undEinplanen der ersten Zellen aus der ersten Warteschlange (505A) und der zweiten Zellen aus der zweiten Warteschlange (505B) zur Übertragung über einen Austrittsprozessor (218A),den Austrittsprozessor (218A), der so konfiguriert ist, dass er die ersten und die zweiten Zellen durch wenigstens einen ersten Port überträgt; undeine Durchgangsschaltung (212A), die mit einer anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B) kommunikativ gekoppelt ist, wobei die Durchgangsschaltung (212A) für Folgendes konfiguriert ist:Empfangen einer Anforderung von wenigstens einigen der ersten Zellen von der anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B);Abrufen der wenigstens einigen der ersten Zellen aus der Speicherverwaltungseinheit (214A); undÜbertragen der wenigstens einigen der ersten Zellen an die andere Durchgangsschaltung (212B) der anderen Vorrichtung (210B) zur Übertragung über einen anderen Austrittsprozessor (218B) durch wenigstens einen zweiten Port der anderen Vorrichtung (210B), wobei die wenigstens einigen der ersten Zellen nicht über den Austrittsprozessor (218A) der Vorrichtung (210A) durch den wenigstens einen ersten Port übertragen werden.

Description

  • Die vorliegende Patentanmeldung beansprucht den Nutzen aus der am 9. Februar 2016 eingereichten, vorläufigen US-amerikanischen Patentanmeldung mit der laufenden Eingangsnummer 62/293,287 mit dem Titel „Scalable Low-Latency Mesh Interconnect for Switch Chips“ (Skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips).
  • Die vorliegende Beschreibung betrifft im Allgemeinen ein skalierbares Maschennetz mit niedriger Latenz einschließlich einer skalierbaren Maschennetzkopplungsstruktur für Switch-Chips einer Switch-Vorrichtung.
  • Auf dem Markt für Unternehmens-Switches verdoppelt sich die Bandbreite pro Switch-Chip alle achtzehn Monate. Als Ergebnis der Bandbreitenerhöhung erhöht sich auch die Leistungsdichte, während die Kosten sinken. Zur Unterstützung des Marktes für Unternehmens-Switches ist eine erhebliche Kühltechnologie erforderlich, um das fortgesetzte Wachstum bei den einzelnen Implementierungen von SoCs (System on a Chip, System auf einem Chip) zu unterstützen. Jedoch kann eine effiziente Möglichkeit zum Skalieren eines Systems unter Verwendung mehrerer Switch-Chips eine Verringerung der Kühlungs- und/oder Leistungsanforderungen ermöglichen.
  • US 2013 / 0 336 332 A1 beschreibt Systeme und Methoden, die eine Skalierung von ausgangsgepufferten Schaltern durch Entkopplung des Datenpfads vom Steuerpfad ermöglichen, wobei ein Switch mit einer Speicherverwaltungseinheit (MMU) verwendet wird, in der die MMU Datenpakete mit einer Rate in eine Ausgangswarteschlange einreiht, die geringer ist als die maximale Eingangsrate des Switches.
  • US 8 868 889 B2 beschreibt einen Paketklassifizierer mit einem Scheduler zum Generieren von Kontextthreads, die Aufgaben entsprechen, die der Paketklassifizierer von mehreren Verarbeitungsmodulen des Netzwerkprozessors empfängt. Eine Multithread-Anweisungs-Engine verarbeitet Anweisungen, die den vom Scheduler empfangenen Threads entsprechen.
  • US 2013 10 179 642 A1 beschreibt Systeme und Verfahren zur Durchführung von nicht zuweisenden Speicherzugriffsbefehlen mit physikalischer Adresse. Ein System enthält einen Prozessor, eine oder mehrere Ebenen von Caches, einen Speicher, einen Translation-Look-Aside-Buffer (TLB) und einen Speicherzugriffsbefehl, der einen Speicherzugriff durch den Prozessor und eine zugehörige physikalische Adresse spezifiziert. Die Ausführungslogik ist so konfiguriert, dass sie den TLB für den Speicherzugriffsbefehl umgeht und den Speicherzugriff mit der physikalischen Adresse durchführt, während sie die Zuweisung einer oder mehrerer Zwischenebenen von Caches vermeidet, in denen ein Fehlschlag auftreten kann.
  • Es ist eine Aufgabe der vorliegenden Erfindung, Vorrichtungen und Verfahren bereitzustellen, welche die oben genannten Probleme lösen, die beim Stand der Technik auftreten.
  • Diese Aufgabe wird erfindungsgemäß durch die Vorrichtungen mit den Merkmalen der Ansprüche 1, 8 bzw. 10 und das Verfahren mit den Merkmalen des Anspruchs 9 gelöst.
  • Vorteilhafte Weiterbildungen ergeben sich aus den abhängigen Unteransprüchen.
  • Gemäß einer erfindungsgemäßen Erscheinungsform wird eine Vorrichtung vorgesehen, die Folgendes umfasst:
    • eine zum Puffern erster Zellen zur Übertragung konfigurierte Speicherverwaltungseinheit;
    • eine Austrittszellenschaltung, die wenigstens eine erste Warteschlange und eine zweite Warteschlange umfasst, wobei die Austrittszellenschaltung für Folgendes konfiguriert ist:
      • Einreihen der ersten Zellen aus der Speicherverwaltungseinheit in die erste Warteschlange;
      • Einreihen von zweiten Zellen aus einer anderen Speicherverwaltungseinheit einer anderen Vorrichtung in die zweite Warteschlange; und
      • Einplanen der ersten Zellen aus der ersten Warteschlange und der zweiten Zellen aus der zweiten Warteschlange zur Übertragung über einen Austrittsprozessor; und
    • den Austrittsprozessor, der so konfiguriert ist, dass er die ersten und die zweiten Zellen durch wenigstens einen ersten Port überträgt.
  • Zweckmäßigerweise weist die Vorrichtung des Weiteren eine mit der Durchgangsschaltung der anderen Vorrichtung kommunikativ gekoppelte Durchgangsschaltung auf, wobei die Durchgangsschaltung für Folgendes konfiguriert ist:
    • Empfangen der zweiten Zellen von der anderen Speicherverwaltungseinheit der anderen Vorrichtung über die andere Durchgangsschaltung, ohne dass die zweiten Zellen einen anderen Austrittsprozessor der anderen Vorrichtung durchlaufen; und
    • Übergeben der zweiten Zellen, unter Umgehung der Speicherverwaltungseinheit der Vorrichtung, direkt an die Austrittszellenschaltung.
  • Zweckmäßigerweise umfasst die Durchgangsschaltung eine Empfangswarteschlange, wobei die Durchgangsschaltung ferner so konfiguriert ist, dass sie die zweiten Zellen vor dem direkten Übergeben der zweiten Zellen an die Austrittszellenschaltung in die Empfangswarteschlange einreiht.
  • Zweckmäßigerweise umfasst die Vorrichtung ferner Folgendes:
    • einen Eintrittsprozessor, der so konfiguriert ist, dass er die ersten Zellen empfängt und die ersten Zellen der Speicherverwaltungseinheit bereitstellt.
  • Zweckmäßigerweise ist die Durchgangsschaltung ferner für Folgendes konfiguriert:
    • Empfangen einer Anforderung von wenigstens einigen der ersten Zellen von der anderen Durchgangsschaltung der anderen Vorrichtung;
    • Abrufen der wenigstens einigen der ersten Zellen aus der Speicherverwaltungseinheit; und
  • Übertragen der wenigstens einigen der ersten Zellen an die andere Durchgangsschaltung der anderen Vorrichtung zur Übertragung über einen anderen Austrittsprozessor durch wenigstens einen zweiten Port der anderen Vorrichtung, wobei die wenigstens einigen der ersten Zellen nicht über den Austrittsprozessor der Vorrichtung durch den wenigstens einen ersten Port übertragen werden.
  • Zweckmäßigerweise ist die Durchgangsschaltung der Vorrichtung über eine erste Verbindung direkt mit der anderen Durchgangsschaltung der anderen Vorrichtung gekoppelt, und die Durchgangsschaltung der Vorrichtung ist über eine durch eine zwischengeschaltete Durchgangsschaltung einer Zwischenvorrichtung verlaufende, zweite Verbindung gesondert indirekt mit der Durchgangsschaltung der anderen Vorrichtung gekoppelt.
  • Zweckmäßigerweise umfasst die Durchgangsschaltung einen Scheduler, der für Folgendes konfiguriert ist:
    • Empfangen von ersten Verbindungsinformationen für die erste Verbindung und von zweiten Verbindungsinformationen für die zweite Verbindung;
    • Bestimmen einer von der ersten oder der zweiten Verbindung zum Übertragen der wenigstens einigen der ersten Zellen an die Durchgangsschaltung der anderen Vorrichtung wenigstens teilweise auf der Grundlage der ersten Verbindungsinformationen und der zweiten Verbindungsinformationen; und
    • Übertragen der wenigstens einigen der ersten Zellen an die andere Vorrichtung über die bestimmte erste oder zweite Verbindung.
  • Zweckmäßigerweise handelt es sich bei der Vorrichtung, der anderen Vorrichtung und der Zwischenvorrichtung jeweils um gesonderte integrierte Schaltungen.
  • Zweckmäßigerweise sind die gesonderten integrierten Schaltungen auf einem gemeinsamen Substrat montiert, und die Durchgangsschaltung der Vorrichtung ist über eine Serialisierer/Deserialisierer-Schnittstelle kommunikativ mit der anderen Durchgangsschaltung der anderen Vorrichtung gekoppelt.
  • Zweckmäßigerweise ist der Eintrittsprozessor ferner für Folgendes konfiguriert:
    • Empfangen von dritten Zellen und Übertragen der dritten Zellen unter Umgehung der Speicherverwaltungseinheit direkt an die Austrittszellenschaltung; und
    • die Austrittszellenschaltung ist ferner so konfiguriert, dass sie die dritten Zellen zur Übertragung über den Austrittsprozessor in Verbindung mit dem Einplanen der ersten und der zweiten Zellen zur Übertragung über den Austrittsprozessor einplant.
  • Zweckmäßigerweise umfasst die Austrittszellenschaltung einen Scheduler, der so konfiguriert ist, dass er die ersten Zellen aus der ersten Warteschlange und der zweiten Zellen aus der zweiten Warteschlange zur Übertragung über den Austrittsprozessor einplant.
  • Gemäß einer Erscheinungsform umfasst eine Vorrichtung Folgendes:
    • einen Eintrittsprozessor, der so konfiguriert ist, dass er erste Zellen empfängt und die ersten Zellen einer Speicherverwaltungseinheit bereitstellt;
    • die Speicherverwaltungseinheit, die so konfiguriert ist, dass sie die ersten Zellen zur Übertragung puffert;
    • einen Austrittsprozessor, der so konfiguriert ist, dass er wenigstens einen Teil der ersten Zellen durch wenigstens einen ersten Port überträgt;
    • eine Durchgangsschaltung, die mit einer anderen Durchgangsschaltung einer anderen Vorrichtung kommunikativ gekoppelt ist, wobei die Durchgangsschaltung für Folgendes konfiguriert ist:
      • Empfangen einer Anforderung von wenigstens einigen der ersten Zellen von der anderen Durchgangsschaltung der anderen Vorrichtung;
      • Abrufen der wenigstens einigen der ersten Zellen aus der Speicherverwaltungseinheit über einen Lese-Port der Speicherverwaltungseinheit; und
      • Übertragen der wenigstens einigen der ersten Zellen an die andere Durchgangsschaltung der anderen Vorrichtung zur Übertragung über einen anderen Austrittsprozessor durch wenigstens einen zweiten Port der anderen Vorrichtung, wobei die wenigstens einigen der ersten Zellen den Austrittsprozessor der Vorrichtung umgehen.
  • Zweckmäßigerweise umfasst die Vorrichtung ferner Folgendes:
    • eine Austrittszellenschaltung, die wenigstens eine erste Warteschlange und eine zweite Warteschlange umfasst, wobei die Austrittszellenschaltung für Folgendes konfiguriert ist:
      • Einreihen des wenigstens einen Teils der aus dem Lese-Port der Speicherverwaltungseinheit abgerufenen ersten Zellen in die erste Warteschlange;
      • Einreihen von von einer anderen Speicherverwaltungseinheit der anderen Vorrichtung über die Durchgangsschaltung abgerufenen zweiten Zellen in die zweite Warteschlange; und
      • Einplanen des wenigstens einen Teils der ersten Zellen aus der ersten Warteschlange und der zweiten Zellen aus der zweiten Warteschlange zur Übertragung über den Austrittsprozessor.
  • Zweckmäßigerweise ist der Austrittsprozessor ferner so konfiguriert, dass er den wenigstens einen Teil der ersten Zellen und der zweiten Zellen durch den wenigstens einen ersten Port überträgt.
  • Zweckmäßigerweise ist die Durchgangsschaltung ferner für Folgendes konfiguriert:
    • Empfangen einer Anforderung der zweiten Zellen von der Austrittszellenschaltung;
    • Anfordern der zweiten Zellen von der anderen Durchgangsschaltung der anderen Vorrichtung;
    • Empfangen der zweiten Zellen von der anderen Speicherverwaltungseinheit der anderen Vorrichtung über die andere Durchgangsschaltung der anderen Vorrichtung; und
    • Bereitstellen der zweiten Zellen, unter Umgehung der Speicherverwaltungseinheit, an die Austrittszellenschaltung.
  • Gemäß einer Erscheinungsform umfasst ein Verfahren Folgendes:
    • Abrufen von ersten Zellen von einer Chip-internen Speicherverwaltungseinheit, wobei die ersten Zellen über einen Chip-internen Eintrittsprozessor empfangen worden sind;
    • Empfangen von zweiten Zellen von einer ersten Chip-externen Speicherverwaltungseinheit und von dritten Zellen von einer zweiten Chip-externen Speicherverwaltungseinheit, wobei die zweiten Zellen über einen ersten Chip-externen Eintrittsprozessor empfangen worden sind und die dritten Zellen mittels eines zweiten Chip-externen Eintrittsprozessors empfangen worden sind;
    • Einplanen der ersten, zweiten und dritten Zellen zur Übertragung über einen Chip-internen Austrittsprozessor ohne Puffern der zweiten oder dritten Zellen in der Chip-internen Speicherverwaltungseinheit; und
    • Übertragen der ersten, zweiten und dritten Zellen durch wenigstens einen Port über den Chip-internen Austrittsprozessor.
  • Zweckmäßigerweise wird ein erster Teil der zweiten Zellen über eine erste Verbindung von der ersten Chip-externen Speicherverwaltungseinheit abgerufen, die dritten Zellen werden über die erste Verbindung von der zweiten Chip-externen Speicherverwaltungseinheit abgerufen, und ein verbleibender Teil der zweiten Zellen wird über eine zweite Verbindung, die physisch von der ersten Verbindung getrennt ist, von der ersten Chip-externen Speicherverwaltungseinheit abgerufen.
  • Zweckmäßigerweise umgehen die von der ersten Chip-externen Speicherverwaltungseinheit abgerufenen zweiten Zellen einen ersten, mit der ersten Chip-externen Speicherverwaltungseinheit verbundenen Chip-externen Austrittsprozessor, und die von der zweiten Chip-externen Speichereinheit abgerufenen dritten Zellen umgehen einen zweiten, mit der zweiten Chip-externen Speichereinheit verbundenen Chip-externen Austrittsprozessor.
  • Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
    • Einreihen der ersten, zweiten und dritten Zellen in eine erste, zweite bzw. dritte Warteschlange, bevor die ersten, zweiten und dritten Zellen zur Übertragung eingeplant werden, wobei die erste, zweite und dritte Warteschlange getrennt von der Chip-internen Speicherverwaltungseinheit sowie von der ersten und zweiten Chip-externen Speicherverwaltungseinheit vorliegen.
  • Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
    • Empfangen von vierten Zellen direkt von dem Chip-internen Eintrittsprozessor, wobei die vierten Zellen die Chip-interne Speicherverwaltungseinheit umgehen; und
    • Einplanen der vierten Zellen zur Übertragung über den Chip-internen Austrittsprozessor ohne Puffern der vierten Zellen in der Chip-internen Speicherverwaltungseinheit.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Bestimmte Merkmale der beanspruchten Technologie sind in den beigefügten Ansprüchen dargelegt. Zum Zwecke der Erläuterung sind jedoch mehrere Ausführungsbeispiele der beanspruchten Technologie in den folgenden Figuren dargelegt.
    • 1 veranschaulicht eine beispielhafte Netzwerkumgebung, in der eine Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips implementiert, gemäß einer oder mehreren Implementierungen implementiert werden kann.
    • 2 veranschaulicht eine beispielhafte Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für zwei Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 3 veranschaulicht eine beispielhafte Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für drei Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 4 veranschaulicht einen beispielhaften Durchgangs-FIFO (First-In-First-Out) eines beispielhaften Switch-Chips einer Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 5 veranschaulicht einen beispielhaften Austrittszellen-FIFO eines beispielhaften Switch-Chips einer Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 6 veranschaulicht ein Ablaufdiagramm eines beispielhaften Prozesses eines Durchgangs-FIFO eines beispielhaften Switch-Chips einer Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 7 veranschaulicht ein Ablaufdiagramm eines beispielhaften Prozesses eines Austrittszellen-FIFO eines beispielhaften Switch-Chips einer Switch-Vorrichtung, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert.
    • 8 veranschaulicht schematisch ein beispielhaftes elektronisches System, mit dem eine oder mehrere Implementierungen der beanspruchten Technologie implementiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgend dargelegte Beschreibung ist als Beschreibung verschiedener Konfigurationen der beanspruchten Technologie vorgesehen, und sie soll nicht die einzigen Konfigurationen verkörpern, in denen die beanspruchte Technologie in der Praxis ausgeführt werden kann. Die beigefügten Zeichnungen sind in das vorliegende Dokument aufgenommen und bilden einen Bestandteil der ausführlichen Beschreibung. Die ausführliche Beschreibung enthält spezifische Details, die dem Zweck dienen sollen, ein besseres Verständnis der beanspruchten Technologie zu ermöglichen. Die beanspruchte Technologie ist jedoch nicht auf die in diesem Dokument dargelegten, spezifischen Details beschränkt, und sie kann unter Verwendung einer oder mehrerer Implementierungen in der Praxis ausgeführt werden. In einem oder mehreren Fällen werden die Strukturen und Komponenten in Form von Blockdiagrammen gezeigt, um zu verhindern, dass die Konzepte der beanspruchten Technologie unverständlich werden.
  • 1 veranschaulicht eine beispielhafte Netzwerkumgebung 100, in der eine Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips implementiert, gemäß einer oder mehreren Implementierungen implementiert werden kann. Es sind jedoch möglicherweise nicht alle der abgebildeten Komponenten erforderlich, und eine oder mehrere Implementierungen können zusätzliche, in der Figur nicht gezeigte Komponenten umfassen. Abweichungen bei der Anordnung und dem Typ der Komponenten sind möglich, ohne dass von dem Wesen oder Schutzumfang der in dem vorliegenden Dokument dargelegten Patentansprüche abgewichen wird. Zusätzliche Komponenten, andere Komponenten oder weniger Komponenten können vorgesehen werden.
  • Die beispielhafte Netzwerkumgebung 100 umfasst verschiedene elektronische Vorrichtungen 102, 104, 106, wie beispielsweise einen oder mehrere Server, Computer, Datenspeichervorrichtungen, Netzwerkkomponenten, Netzwerkvorrichtungen, usw. Bei einer oder mehreren Implementierungen umfasst die Netzwerkumgebung 100 einen Satz von Servern, eine Server-Bank, ein SAN (Storage Area Network, Speicherbereichsnetzwerk) und/oder ein umfangreiches Netzwerk aus miteinander verbundenen Computern oder Netzwerkvorrichtungen. Bei einer oder mehreren Implementierungen umfasst die Netzwerkumgebung 100 eine oder mehrere Vorrichtungen, wie zum Beispiel eine oder mehrere mobile Vorrichtungen, Tablet-Vorrichtungen, Set-Top-Box-Vorrichtungen (STB), Speichervorrichtungen, Desktop-Computer, Router, Switches, Bridges oder eine beliebige andere Maschine oder Vorrichtung.
  • Eine oder mehrere Netzwerkvorrichtungen, wie beispielsweise die Switch-Vorrichtung 110, können in der Netzwerkumgebung 100 implementiert sein, um die Kommunikation zwischen der einen oder den mehreren elektronischen Vorrichtungen 102, 104, 106 zu ermöglichen. Die elektronischen Vorrichtungen 102, 104, 106 der Netzwerkumgebung 100 sind durch die Switch-Vorrichtung 110 oder unter deren Verwendung miteinander verbunden oder stehen anderweitig kommunikativ in Verbindung miteinander. Zum Beispiel können die elektronischen Vorrichtungen 102, 104, 106 jeweils mittels einer Netzwerk-Übertragungsleitung, wie beispielsweise einer Ethernet-Übertragungsleitung, einer koaxialen Übertragungsleitung, einer optischen Übertragungsleitung, einem Glasfaserkanal oder allgemein einer beliebigen Übertragungsleitung, mit einem oder mehreren physischen Ports der Switch-Vorrichtung 110 gekoppelt sein. Bei einer oder mehreren Implementierungen sind eine oder mehrere der elektronischen Vorrichtungen 102, 104, 106 drahtlos mit der Switch-Vorrichtung 110 gekoppelt. Bei der Switch-Vorrichtung 110 und/oder einer oder mehreren der elektronischen Vorrichtungen 102, 104, 106 kann es sich um das unten unter Bezugnahme auf 8 erörterte elektronische System handeln, und/oder sie können dieses in seiner Gesamtheit oder teilweise beinhalten.
  • Die Switch-Vorrichtung 110 kann eine Anzahl integrierter Schaltungen oder Chips umfassen, die als Switch-Chips bezeichnet werden. Die Switch-Chips können auf einem gemeinsamen Substrat montiert sein, und/oder einer oder mehrere der Switch-Chips können auf getrennten Substraten, wie beispielsweise getrennten Leitungskarten, montiert sein. Jeder Switch-Chip ist mit einem oder mehreren Ports der Switch-Vorrichtung 110 gekoppelt und verarbeitet durch die Ports übertragene und/oder durch diese empfangene Dateneinheiten. Zum Zweck der Erläuterung können die Dateneinheiten in dem vorliegenden Dokument vornehmlich als Zellen, zum Beispiel Teile von Paketen, bezeichnet werden; bei den Dateneinheiten kann es sich jedoch um Pakete, Protokolldateneinheiten (PDUs), Blöcke oder allgemein um eine beliebige darstellbare Dateneinheit handeln. Um das Verarbeiten der Dateneinheiten zu ermöglichen, kann jeder der Switch-Chips einen oder mehrere Eintrittsprozessoren, Austrittsprozessoren und/oder Speicherverwaltungseinheiten (MMUs) umfassen.
  • Bei dem beanspruchten System, einer skalierbaren Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips, sind die Switch-Chips innerhalb der Switch-Vorrichtung 110 unter Verwendung eines Maschennetzes mit niedriger Latenz miteinander verbunden. Die Switch-Chips können so verbunden werden, dass für eine beliebige, durch die Switch-Vorrichtung 110 geleitete Dateneinheit höchstens ein einziger Store-and-Forward-Vorgang erfolgt. Des Weiteren kann jede Dateneinheit über die gesamte Multi-Chip-Architektur hinweg höchstens einen einzelnen Eintrittsprozessor und einen einzelnen Austrittsprozessor durchlaufen, wodurch für jede Dateneinheit eine einzige Weiterleitungslatenz anfällt. Bei einer oder mehreren Implementierungen kann die auf der Platine vorhandene Maschenverbindung der Switch-Chips eine mit hoher Geschwindigkeit laufende Serialisierer/Deserialisierer-Schnittstelle (SerDes-Schnittstelle) umfassen. Bei einem Beispiel kann der Paketprozessor jedes Switch-Chips einzeln für eine bestimmte Bandbreite geeignet sein. Wenn die Switch-Chips jedoch in der Switch-Vorrichtung 110 unter Verwendung des beanspruchten Systems miteinander verbunden sind, können die Paketprozessoren der Chips mit einem Bruchteil ihrer vollen Kapazität laufen, wodurch der Energieverbrauch der Chips, und folglich der Switch-Vorrichtung, verringert wird. Eine beispielhafte, das beanspruchte System implementierende Switch-Vorrichtung 110 wird weiter unten unter Bezugnahme auf 2 und 3 erörtert.
  • Bei einer oder mehreren Implementierungen kann eine das beanspruchte System implementierende Fabric (bzw. Vermittlungsnetz) mit jeder Dateneinheit, wie beispielsweise einem Paket, einen System-Header mitführen, um das Implementieren des beanspruchten Systems zu ermöglichen. Die Fabric kann byteweise gepackt sein, zum Beispiel kann der Ethernet-Inter-Packet-Gap zum Packen des System-Headers verwendet werden. Der Header kann eine veränderliche Größe aufweisen, wie beispielsweise einer erste Größe für einfache Unicast-Datenströme, und eine zweite Größe, wenn Merkmale, wie beispielsweise Instrumentierung, zugeschaltet werden. Die erste Größe kann dem Inter-Packet-Gap entsprechen, wodurch keine Übergeschwindigkeit erforderlich ist.
  • 2 veranschaulicht eine beispielhafte Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für zwei Switch-Chips 210A-B gemäß einer oder mehrerer Implementierungen implementiert. Nicht alle abgebildeten Komponenten müssen verwendet werden, jedoch können eine oder mehrere Implementierungen zusätzliche Komponenten umfassen, die in der Figur nicht gezeigt sind. Abweichungen bei der Anordnung und dem Typ der Komponenten sind möglich, ohne dass von dem Wesen oder Schutzumfang der in dem vorliegenden Dokument dargelegten Patentansprüche abgewichen wird. Zusätzliche Komponenten, andere Komponenten oder weniger Komponenten können vorgesehen werden. Des Weiteren können eine oder mehrere der veranschaulichten Komponenten zu einer einzigen Komponente zusammengeführt/kombiniert werden, und/oder eine oder mehrere der veranschaulichten Komponenten können in mehrere getrennte Komponenten aufgeteilt werden.
  • Die Switch-Vorrichtung 110 umfasst einen ersten Switch-Chip 210A und einen zweiten Switch-Chip 210B, die mittels der Verbindungen 211A-B miteinander verbunden sind. Der erste Switch-Chip 210A umfasst einen Durchgangs-FIFO 212A, eine Speicherverwaltungseinheit (Memory Management Unit, MMU) 214A, einen Austrittszellen-FIFO 215A, einen Eintrittsprozessor 216A, ein Port-Makro 217A und einen Austrittsprozessor 218A. Der zweite Switch-Chip 210B kann einen Durchgangs-FIFO 212B, eine MMU 214B, einen Austrittszellen-FIFO 215B, einen Eintrittsprozessor 216B, ein Port-Makro 217B und einen Austrittsprozessor 218B umfassen.
  • Bei den Eintrittsprozessoren 216A-B kann es sich zum Beispiel um Prozessoren für Eintrittspakete handeln, und bei den Austrittsprozessoren 218A-B kann es sich zum Beispiel um Prozessoren für Austrittspakete handeln. Die Port-Makros 217A-B können jeweils mit gesonderten Sätzen aus einem oder mehreren Ports gekoppelt sein. Zum Beispiel kann die elektronische Vorrichtung 102 aus 1 mit einem mit dem Port-Makro 217A des Switch-Chips 210A gekoppelten Port verbunden sein, und die elektronische Vorrichtung 104 aus 1 kann mit einem mit dem Port-Makro 217B des Switch-Chips 210B gekoppelten Port verbunden sein. Bei den Verbindungen 211A-B kann es sich jeweils um getrennte physische Verbindungen, zum Beispiel auf einem Substrat, handeln, mit denen die Switch-Chips 210A-B miteinander verbunden sind. Die Verbindungen 21 1A-B können jeweils bidirektional oder unidirektional sein.
  • Die MMUs 214A-B jedes Switch-Chips 210A-B können jeweils virtuelle Ausgangswarteschlangen umfassen, die dem jeweiligen, mit dem jeweiligen Switch-Chip 210A-B gekoppelten Port entsprechen. Die Austrittszellen-FIFOs 215A-B jedes der Switch-Chips 210A-B umfassen Ausgangswarteschlangen für alle Ports in der Switch-Vorrichtung 110, wie beispielsweise 256 Ports oder eine beliebige Anzahl von Ports. Die Switch-Chips 210A-B nutzen die Durchgangs-FIFOs 212A-B zur Unterstützung der Maschennetzwerktopologie. Jeder der Durchgangs-FIFOs 212A-B steuert über die Verbindungen 211A-B eine Serialisierer/Deserialisierer-Schnittstelle für die Maschennetzwerkverbindungen an. Die Durchgangs-FIFOs 212A-B können jeweils ein Cut-Through-Schaltverfahren implementieren, indem sie den Header prüfen, um entweder eine Zelle zu kopieren, eine Zelle zu verwerfen oder eine Zelle durchzuleiten. Die Durchgangs-FIFOs 212A-B können auch als Durchgangsschaltungen bezeichnet werden. Ein beispielhafter Durchgangs-FIFO 212A wird weiter unten unter Bezugnahme auf 4 erörtert, und ein beispielhafter Prozess eines beispielhaften Durchgangs-FIFO 212A wird weiter unten unter Bezugnahme auf 6 erörtert.
  • Die Switch-Chips 210A-B nutzen außerdem die Austrittszellen-FIFOs 215A-B, um Zellen aus den jeweiligen MMUs 214A-B und aus den jeweiligen Durchgangs-FIFOs 212A-B als Eingangselemente zu ziehen/zu empfangen. Die Austrittszellen-FIFOS 215A-B können auf Zellen basieren, auf Paketen basieren oder allgemein auf einer beliebigen Dateneinheit basieren. Die Austrittszellen-FIFOs 215A-B können auch als Austrittszellenschaltungen bezeichnet werden. Ein beispielhafter Austrittszellen-FIFO 215A wird weiter unten unter Bezugnahme auf 5 erörtert, und ein beispielhafter Prozess eines beispielhaften Austrittszellen-FIFO 215A wird weiter unten unter Bezugnahme auf 7 erörtert.
  • In dem Betrieb empfängt der Eintrittsprozessor 216A über das Port-Makro 217A Zellen von den gekoppelten Ports. Der Eintrittsprozessor 216A speichert die Zellen zur Übertragung in der MMU 214A. Bei einer oder mehreren Implementierungen stellt der Eintrittsprozessor 216A für lokales Cut-Through-Schalten die Zellen direkt dem Austrittszellen-FIFO 215A oder dem Austrittsprozessor 218A bereit. Bei einer oder mehreren Implementierungen kann das lokale Cut-Through-Schalten von der Belegung der Warteschlangen des Austrittszellen-FIFO 215A abhängen. Der Austrittszellen-FIFO 215A ruft Zellen von der Chip-internen MMU 214A ab und reiht die Zellen zur Übertragung durch die gekoppelten Ports über den Austrittsprozessor 218A und das Port-Makro 217A in speziell vorgesehene FIFOs (oder Warteschlangen/Puffer) ein. Die Komponenten des Switch-Chips 210A können (relativ zu dem Austrittszellen-FIFO 215A) als Chip-intern bezeichnet werden, und die Komponenten des Switch-Chips 210B (oder eines beliebigen anderen Chips) können (relativ zu dem Austrittszellen-FIFO 215A) als Chip-extern bezeichnet werden.
  • Der Austrittszellen-FIFO 215A ruft außerdem Zellen von der Chip-externen MMU 214B des Switch-Chips 210B ab und reiht die Zellen zur Übertragung durch die gekoppelten Ports über den Austrittsprozessor 218A und das Port-Makro 217A in gesonderte, spezifisch vorgesehene FIFOs ein. Zum Beispiel fordert der Austrittszellen-FIFO 215A über den Durchgangs-FIFO 212A, die Verbindung 211A und den Durchgangs-FIFO 212B Zellen von der Chip-externen MMU 214B an. Der Durchgangs-FIFO 212A ruft die Zellen über den Durchgangs-FIFO 212B von der Chip-externen MMU 214B ab (ohne dass die Zellen den Austrittsprozessor 218B des Switch-Chips 210B durchlaufen), und der Durchgangs-FIFO 212A stellt die Zellen, zum Beispiel unter Umgehung der Chip-internen MMU 214A, direkt dem Austrittszellen-FIFO 215A bereit. Der Austrittszellen-FIFO 215A reiht dann die von der Chip-externen MMU 214B abgerufenen Zellen zur Übertragung durch die gekoppelten Ports über den Austrittsprozessor 218A und das Port-Makro 217A, zum Beispiel innerhalb der Übertragungen der von der Chip-internen MMU 214A abgerufenen Zellen verteilt, in die Warteschlange ein. Somit werden einige der von der Chip-externen MMU 214B abgerufenen Zellen anfänglich über den Eintrittsprozessor 216B des Switch-Chips 210B empfangen, aber nicht über den Austrittsprozessor 218B des Switch-Chips 210B, sondern vielmehr über den Austrittsprozessor 218A des Switch-Chips 210A übertragen. Der Austrittszellen-FIFO 215B des Switch-Chip 210B kann auf ähnliche Weise betrieben werden.
  • Die Switch-Vorrichtung 110 kann an einer der MMUs 214A-B eines der Switch-Chips 210A-B, von dem die Multicast-Übertragung ausgeht, eine Multicast-Replikation durchführen. Die Switch-Vorrichtung 110 kann außerdem eine Prioritätsflusssteuerung nutzen, um einen Abfluss aus den Austrittszellen-FIFOs 215A-B, die pro Warteschlange organisiert sind, zu verhindern, und eine Guthabensteuerung kann genutzt werden, um einen Abfluss aus den Quell-MMUs 214A-B zu verhindern.
  • Die Switch-Vorrichtung 110 kann auch über Kanäle mit einem ECMP- (Equal Cost Multipath) und/oder LAG-Protokoll (Link Aggregation) innerhalb jedes der Switch-Chips 210AB und/oder übergreifend für Ports der Switch-Chips 210A-B eine Zählwerterfassung nutzen. Zum Beispiel kann eine langsame Aktualisierung genutzt werden, um den Zustand des Zählers in dem gesamten Maschennetzwerk für beide Switch-Chips 210A-B zu synchronisieren. Die Aktualisierungsgeschwindigkeit kann bei niedriger Anzahl von Switch-Chips 210A-B niedrig sein.
  • Bei einer oder mehreren Implementierungen können einer oder mehrere von den Switch-Chips 210A-B, den Durchgangs-FIFOs 212A-B, den MMUs 214A-B, den Austrittszellen-FIFOs 215A-B, den Eintrittsprozessoren 216A-B, den Port-Makros 217A-B, den Austrittsprozessoren 218A-B und/oder den Verbindungen 211A-B in Software implementiert sein und/oder in Hardware implementiert sein (zum Beispiel in einer ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung), einer PLD (Programmable Logic Device, programmierbare Logikvorrichtung), einem Controller, einem Zustandsautomaten, einem Logikgatter, diskreten Hardwarekomponenten oder beliebigen anderen geeigneten Vorrichtungen) und/oder in einer Kombination aus beidem implementiert sein. Zusätzliche Merkmale und Funktionen dieser Module gemäß verschiedenen Erscheinungsformen der beanspruchten Technologie sind in der vorliegenden Offenbarung noch weiter beschrieben.
  • 3 veranschaulicht eine beispielhafte Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für drei Switch-Chips 210A-B, 310 gemäß einer oder mehrerer Implementierungen implementiert. Nicht alle abgebildeten Komponenten müssen verwendet werden, jedoch können eine oder mehrere Implementierungen zusätzliche Komponenten umfassen, die in der Figur nicht gezeigt sind. Abweichungen bei der Anordnung und dem Typ der Komponenten sind möglich, ohne dass von dem Wesen oder Schutzumfang der in dem vorliegenden Dokument dargelegten Patentansprüche abgewichen wird. Zusätzliche Komponenten, andere Komponenten oder weniger Komponenten können vorgesehen werden. Des Weiteren können eine oder mehrere der veranschaulichten Komponenten zu einer einzigen Komponente zusammengefiihrt/kombiniert werden, und/oder eine oder mehrere der veranschaulichten Komponenten können in mehrere getrennte Komponenten aufgeteilt werden.
  • Die Switch-Vorrichtung 110 umfasst die Switch-Chips 210A-B von 2 sowie einen dritten Switch-Chip 310. Der Switch-Chip 310 umfasst einen Durchgangs-FIFO 312, eine MMU 314, einen Austrittszellen-FIFO 315, einen Eintrittsprozessor 316, ein Port-Makro 317 und einen Austrittsprozessor 318. Die Switch-Chips 210A-B, 310 sind über die Verbindungen 311A-C miteinander verbunden. Die Verbindungen 311A-C können jeweils unidirektional oder bidirektional sein. Somit kann der Switch-Chip 210A, wie in 3 gezeigt, über die Verbindung 311A direkt mit dem Switch-Chip 310 kommunizieren, und der Switch-Chip 210A kann, zum Beispiel unter Verwendung des Switch-Chip 210B als Zwischenstation, über die Verbindungen 311B-C indirekt mit dem Switch-Chip 310 kommunizieren.
  • Um die mehreren verschiedenen Verbindungen 311A-C zu unterstützen, können die Durchgangs-FIFOs 212A-B, 312 jeweils einen Scheduler umfassen, wie weiter unten unter Bezugnahme auf 4 erörtert wird. Die Scheduler der Durchgangs-FIFOs 212A-B, 312 können die Verbindungsbelegung nachverfolgen und können Verbindungszustandsinformationen, wie beispielsweise Statistiken zu Verbindungs- und Pfadnutzung, miteinander nutzen. Die Scheduler der einzelnen Durchgangs-FIFOs 212A-B, 312 können die Verbindungszustandsinformationen verwenden, um die geeignete Verbindung zum Übertragen einer bestimmten Zelle zu bestimmen, zum Beispiel um sicherzustellen, dass die Lasten der Verbindungen 311A-C jeweils zellenweise ausgeglichen werden. Somit kann der Durchgangs-FIFO 212A die Verbindung 311A oder die Verbindungen 31 1B-C zum Übertragen einer bestimmten Zelle an den Durchgangs-FIFO 312 auswählen, und der Durchgangs-FIFO 212A kann die Verbindung 311B oder die Verbindungen 311A,C zum Übertragen einer bestimmten Zelle an den Durchgangs-FIFO 212B auswählen. Die Durchgangs-FIFOs 212B, 312 können auf ähnliche Weise betrieben werden. Die Durchgangs-FIFOs 212A-B, 312 können bestimmen, ob eine bestimmte Zelle wenigstens teilweise auf der Grundlage des mit der Zelle verbundenen Headers kopiert, durchgeleitet oder gelöscht werden soll.
  • Das beanspruchte System kann außerdem in einer Konfigurationsebenenimplementierung genutzt werden, in welcher die Switch-Chips 210A-B, 310 als drei Endpunkte einer Speicherzuordnung, wie beispielsweise drei PCIe- bzw. PCI-E-Endpunkte (Peripheral Component Interconnect Express, PCI-Express), dargestellt werden. In diesem Fall können die Switch-Chips 210A-B, 310 mit einer mit einem Speichermodul und einer Host-CPU gekoppelten PCIe-Erweiterungskarte gekoppelt werden. Einer der Switch-Chips 210A-B, 310 wird ausgewählt bzw. erwählt, um den Pfad für die Weiterleitung des Pakets auf der nächst niedrigen Ebene für die Implementierung bereitzustellen. Die Last der CPU-Warteschlangen kann ausgeglichen werden, und eine bestimmte Warteschlange kann mit einem einzelnen der Switch-Chips 210A-B, 310 verbunden sein.
  • Bei einer oder mehreren Implementierungen können einer oder mehrere von den Switch-Chips 210A-B, 310, den Durchgangs-FIFOs 212A-B, 312, den MMUs 214A-B, 314, den Austrittszellen-FIFOs 215A-B, 315, den Eintrittsprozessoren 216A-B, 316, den Port-Makros 217A-B, 317, den Austrittsprozessoren 218A-B, 318, und/oder den Verbindungen 311A-C in Software implementiert sein und/oder in Hardware implementiert sein (zum Beispiel in einer ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung), einer PLD (Programmable Logic Device, programmierbare Logikvorrichtung), einem Controller, einem Zustandsautomaten, einem Logikgatter, diskreten Hardwarekomponenten oder beliebigen anderen geeigneten Vorrichtungen) und/oder in einer Kombination aus beidem implementiert sein. Zusätzliche Merkmale und Funktionen dieser Module gemäß verschiedenen Erscheinungsformen der beanspruchten Technologie sind in der vorliegenden Offenbarung noch weiter beschrieben.
  • 4 veranschaulicht einen beispielhaften Durchgangs-FIFO 212A eines beispielhaften Switch-Chips 210A einer Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert. Nicht alle abgebildeten Komponenten müssen verwendet werden, jedoch können eine oder mehrere Implementierungen zusätzliche Komponenten umfassen, die in der Figur nicht gezeigt sind. Abweichungen bei der Anordnung und dem Typ der Komponenten sind möglich, ohne dass von dem Wesen oder Schutzumfang der in dem vorliegenden Dokument dargelegten Patentansprüche abgewichen wird. Zusätzliche Komponenten, andere Komponenten oder weniger Komponenten können vorgesehen werden. Des Weiteren können eine oder mehrere der veranschaulichten Komponenten zu einer einzigen Komponente zusammengeführt/kombiniert werden, und/oder eine oder mehrere der veranschaulichten Komponenten können in mehrere getrennte Komponenten aufgeteilt werden.
  • Der beispielhafte Durchgangs-FIFO 212A umfasst einen Scheduler 410 zum Einplanen von Zellen zur Übertragung über die Verbindungen 311 A-B und einen oder mehrere Puffer 420 zum Puffern von über die Verbindungen 311A-B empfangenen Zellen. Bei dem einen oder den mehreren Puffern 420 kann es sich um einen kleinen Puffer handeln, der zum Latenzabgleich, zum Beispiel zur Berücksichtigung der Latenz zwischen den durch die verschiedenen Verbindungen 311A-B empfangenen Zellen, und zum Beibehalten der empfangenen Zellen in ihrer Reihenfolge genutzt wird.
  • In dem Betrieb kann der Durchgangs-FIFO 212A eine Anforderung von in der MMU 214A gespeicherten Zellen empfangen. Die Anforderung kann zum Beispiel in dem Auftrag des Austrittszellen-FIFO 215B von dem Durchgangs-FIFO 212B und/oder in dem Auftrag des Austrittszellen-FIFO 315 von dem Durchgangs-FIFO 312 empfangen werden. Der Durchgangs-FIFO 212A plant die angeforderten Zellen zur Übertragung über eine der Verbindungen 311A-B ein, ruft die angeforderten Zellen zu der eingeplanten Zeit von der MMU 214A ab und überträgt die Zellen über eine aus den Verbindungen 311A-B ausgewählte Verbindung an den Durchgangs-FIFO 212B und/oder den Durchgangs-FIFO 312. Der Durchgangs-FIFO 212A kann von den Durchgangs-FIFOs 212B, 312 Verbindungszustandsinformationen erhalten und den Durchgangs-FIFOs 212B, 312 Verbindungszustandsinformationen bereitstellen. Der Scheduler 410 bestimmt die geeignete Verbindung zum Übertragen der jeweiligen Zelle wenigstens teilweise auf der Grundlage der empfangenen Verbindungszustandsinformationen.
  • Der Durchgangs-FIFO 212A fordert außerdem in dem Auftrag des Austrittszellen-FIFO 215A Zellen von den MMUs 214B, 314 an. Die angeforderten Zellen werden über eine oder mehrere der Verbindungen 311A-B empfangen und in dem einen oder den mehreren Puffern 420 gepuffert. Sobald die Zellen, sofern notwendig, umgeordnet worden sind, überträgt der Durchgangs-FIFO 212A die Zellen unter Umgehung der MMU 214A direkt an den Austrittszellen-FIFO 215A, was die Anzahl von Lese-/Schreibvorgängen zum Verarbeiten der Zellen minimiert und folglich die mit dem Verarbeiten der Zellen verbundene Latenz verringert.
  • Bei einer oder mehreren Implementierungen können einer oder mehrere von dem Switch-Chip 210A, dem Durchgangs-FIFO 212A, dem Scheduler 410, dem Puffer 420 und/oder den Verbindungen 311A-B in Software implementiert sein und/oder in Hardware implementiert sein (zum Beispiel in einer ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung), einer PLD (Programmable Logic Device, programmierbare Logikvorrichtung), einem Controller, einem Zustandsautomaten, einem Logikgatter, diskreten Hardwarekomponenten oder beliebigen anderen geeigneten Vorrichtungen) und/oder in einer Kombination aus beidem implementiert sein. Zusätzliche Merkmale und Funktionen dieser Module gemäß verschiedenen Erscheinungsformen der beanspruchten Technologie sind in der vorliegenden Offenbarung noch weiter beschrieben.
  • 5 veranschaulicht einen beispielhaften Austrittszellen-FIFO 215A eines beispielhaften Switch-Chips 210A einer Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert. Nicht alle abgebildeten Komponenten müssen verwendet werden, jedoch können eine oder mehrere Implementierungen zusätzliche Komponenten umfassen, die in der Figur nicht gezeigt sind. Abweichungen bei der Anordnung und dem Typ der Komponenten sind möglich, ohne dass von dem Wesen oder Schutzumfang der in dem vorliegenden Dokument dargelegten Patentansprüche abgewichen wird. Zusätzliche Komponenten, andere Komponenten oder weniger Komponenten können vorgesehen werden. Des Weiteren können eine oder mehrere der veranschaulichten Komponenten zu einer einzigen Komponente zusammengeführt/kombiniert werden, und/oder eine oder mehrere der veranschaulichten Komponenten können in mehrere getrennte Komponenten aufgeteilt werden.
  • Der Austrittszellen-FIFO 215A umfasst eine oder mehrere Warteschlangen 505A-D und einen Scheduler 510. Zum Beispiel kann der Austrittszellen-FIFO 215A gesonderte, spezifisch vorgesehene Warteschlangen für jede Ausgangswarteschlange jedes Ports der Switch-Vorrichtung 110, zum Beispiel übergreifend über jeden der Switch-Chips der Switch-Vorrichtung 110, umfassen. Wenn somit die Switch-Vorrichtung 110 drei Switch-Chips 212A-B, 312 umfasst, jeder der Switch-Chips 212A-B, 312 mit 64 Ports gekoppelt ist und jeder Port mit 4 Ausgangswarteschlangen verbunden ist, dann umfasst der Austrittszellen-FIFO 215A 64*4*3=768 Warteschlangen. Wenn somit der Austrittszellen-FIFO 215A Zellen von einem der Chip-externen MMUs 214B, 314 empfängt, reiht der Austrittszellen-FIFO 215A die Zellen in die geeignete, mit der einen von den Chip-externen MMUs 214B, 314 verbundene Warteschlange der Warteschlangen 505A-D ein.
  • In dem Betrieb ruft der Austrittszellen-FIFO 215A über den Durchgangs-FIFO 212A Zellen von einem Lese-Port der Chip-internen MMU 214A und von den Chip-externen MMUs 214A, 314 ab. Der Austrittszellen-FIFO 215A ruft Zellen von den jeweiligen MMUs 214A-B, 314 ab, soweit in den mit den jeweiligen MMUs 214A-B, 314 verbundenen Warteschlangen 505A-D ausreichend Platz vorhanden ist. Der Scheduler 510 plant Ausgangswarteschlangen zu einem bestimmten gekoppelten Port ein, zum Beispiel unter Verwendung eines auf der Quelle basierenden Guthabens für jeden Port. Der Scheduler 510 stellt sicher, dass die Zellen von der Chip-internen MMU 214A und die Zellen von den Chip-externen MMUs 214B, 314 einen gerechten Zugriff auf einen bestimmten Port erhalten.
  • Bei einer oder mehreren Implementierungen können einer oder mehrere von dem Switch-Chip 210A, dem Austrittszellen-FIFO 215A, dem Warteschlangen 505A-D und/oder dem Scheduler 510 in Software implementiert sein und/oder in Hardware implementiert sein (zum Beispiel in einer ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung), einer PLD (Programmable Logic Device, programmierbare Logikvorrichtung), einem Controller, einem Zustandsautomaten, einem Logikgatter, diskreten Hardwarekomponenten oder anderen geeigneten Vorrichtungen) und/oder in einer Kombination aus beidem implementiert sein. Zusätzliche Merkmale und Funktionen dieser Module gemäß verschiedenen Erscheinungsformen der beanspruchten Technologie sind in der vorliegenden Offenbarung noch weiter beschrieben.
  • 6 veranschaulicht ein Ablaufdiagramm eines beispielhaften Prozesses 600 eines Durchgangs-FIFO 212A eines beispielhaften Switch-Chips 210A einer Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert. Zum Zwecke der Erläuterung wird der beispielhafte Prozess 600 in dem vorliegenden Dokument vorrangig unter Bezugnahme auf den Durchgangs-FIFO 212A des Switch-Chips 210A der Switch-Vorrichtung 110 von 2 und 3 beschrieben; der beispielhafte Prozess 600 ist jedoch nicht auf den Durchgangs-FIFO 212A des Switch-Chips 210A von 2 und 3 beschränkt, zum Beispiel kann der beispielhafte Prozess 600 durch einen oder mehrere der Durchgangs-FIFOs 212B, 312 der Switch-Chips 210B, 310 durchgeführt werden, und/oder der beispielhafte Prozess 600 kann durch eine oder mehrere Komponenten des Durchgangs-FIFO 212A durchgeführt werden. Zum Zwecke der Erläuterung sind ferner die Blöcke des beispielhaften Prozesses 600 in dem vorliegenden Dokument so beschrieben, dass sie seriell bzw. linear vorkommen. Mehrere Blöcke des beispielhaften Prozesses 600 können jedoch parallel auftreten. Außerdem können die Blöcke des beispielhaften Prozesses 600 in einer anderen Reihenfolge als der gezeigten Reihenfolge ausgeführt werden, und/oder einer oder mehrere der Blöcke des beispielhaften Prozesses 600 werden ggf. nicht ausgeführt.
  • Der Durchgangs-FIFO 212A empfängt eine Anforderung von in der Chip-internen MMU 214A gespeicherten Zellen von einem Chip-externen Durchgangs-FIFO 212B (602). Der Durchgangs-FIFO 212A bestimmt eine geeignete Verbindung zum Übertragen der Zellen an den Chip-externen Durchgangs-FIFO 212B (604). Wenn es zum Beispiel mehrere Verbindungen 31 1A-C zum Übertragen von Zellen an den Chip-externen Durchgangs-FIFO 212B gibt, bestimmt der Durchgangs-FIFO 212A die geeignete Verbindung auf der Grundlage von von dem Chip-externen Durchgangs-FIFO 212B und/oder dem Chip-externen Durchgangs-FIFO 312 empfangenen Verbindungszustandsinformationen, wie beispielsweise Informationen zur Verbindungsbelegung. Der Durchgangs-FIFO 212A ruft die angeforderten Zellen direkt von dem Lese-Port der MMU 214A ab (606) und überträgt die Zellen über die bestimmte Verbindung an den Chip-externen Durchgangs-FIFO 212B zur Übertragung über einen Chip-externen Austrittsprozessor 218B (608). Auf diese Weise umgehen die von der MMU 214A abgerufenen Zellen den Chip-internen Austrittsprozessor 218A, zum Beispiel werden sie nicht von diesem verarbeitet.
  • Der Durchgangs-FIFO 212A empfängt eine Anforderung von in einer Chip-externen MMU, wie beispielsweise der Chip-externen MMU 214B, gespeicherten Zellen von dem Chip-internen Austrittszellen-FIFO 215A (610). Der Durchgangs-FIFO 212A überträgt die Anforderung an den Chip-externen Durchgangs-FIFO 212B, der sich auf demselben Switch-Chip 212B befindet wie die Chip-externe MMU 214B (612). Der Durchgangs-FIFO 212A empfängt die Zellen von der Chip-externen MMU 214B von dem Chip-externen Durchgangs-FIFO 212B (614). Der Durchgangs-FIFO 212A überträgt die empfangenen Zellen an den Chip-internen Austrittszellen-FIFO 215A zur Übertragung über den Chip-internen Austrittsprozessor 218A (616).
  • 7 veranschaulicht ein Ablaufdiagramm eines beispielhaften Prozesses 700 eines Austrittszellen-FIFO 215A eines beispielhaften Switch-Chips 210A einer Switch-Vorrichtung 110, die eine skalierbare Maschennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips gemäß einer oder mehreren Implementierungen implementiert. Zum Zwecke der Erläuterung wird der beispielhafte Prozess 700 in dem vorliegenden Dokument vorrangig unter Bezugnahme auf den Austrittszellen-FIFO 215A des Switch-Chip 210A der Switch-Vorrichtung 110 von 2 und 3 beschrieben; der beispielhafte Prozess 700 ist jedoch nicht auf den Austrittszellen-FIFO 215A des Switch-Chips 210A von 2 und 3 beschränkt, zum Beispiel kann der beispielhafte Prozess 700 durch einen oder mehrere der Austrittszellen-FIFOs 215A, 315 der Switch-Chips 210B, 310 durchgeführt werden, und/oder der beispielhafte Prozess 700 kann durch eine oder mehrere Komponenten des Durchgangs-FIFO 215A durchgeführt werden. Zum Zwecke der Erläuterung sind ferner die Blöcke des beispielhaften Prozesses 700 in dem vorliegenden Dokument so beschrieben, dass sie seriell bzw. linear vorkommen. Mehrere Blöcke des beispielhaften Prozesses 700 können jedoch parallel auftreten. Außerdem können die Blöcke des beispielhaften Prozesses 700 in einer anderen Reihenfolge als der gezeigten Reihenfolge ausgeführt werden, und/oder einer oder mehrere der Blöcke des beispielhaften Prozesses 700 werden ggf. nicht ausgeführt.
  • Der Austrittszellen-FIFO 215A ruft erste Zellen über einen Lese-Port einer Chip-internen MMU 214A ab (702). Der Austrittszellen-FIFO 215A reiht die ersten Zellen aus der Chip-internen MMU 214A in eine erste Warteschlange 505A ein (704). Der Austrittszellen-FIFO 215A empfängt zweite Zellen über den Chip-internen Durchgangs-FIFO 212A und einen mit der ersten Chip-externen MMU 214B verbundenen Chip-externen Durchgangs-FIFO 212B von einer ersten Chip-externen MMU 214B (706). Der Austrittszellen-FIFO 215A reiht die zweiten Zellen von der ersten Chip-externen MMU 214B in eine zweite Warteschlange 505B ein (708). Der Austrittszellen-FIFO 215A empfängt dritte Zellen über den Chip-internen Durchgangs-FIFO 212A und einen mit der zweiten Chip-externen MMU 314 verbundenen zweiten Chip-externen Durchgangs-FIFO 312 von einer zweiten Chip-externen MMU 314 (710). Der Austrittszellen-FIFO 215A reiht die dritten Zellen von der zweiten Chip-externen MMU 314 in eine dritte Warteschlange 505C ein (712). Der Scheduler 510 des Austrittszellen-FIFO 215A plant dann die ersten, die zweiten und die dritten Zellen zur Übertragung über den Chip-internen Austrittsprozessor 218A, das Chip-interne Port-Makro 217A und einen oder mehrere gekoppelte Ports ein (714).
  • 8 veranschaulicht schematisch ein beispielhaftes elektronisches System 800, mit dem eine oder mehrere Implementierungen der beanspruchten Technologie implementiert werden können. Bei dem elektronischen System 800 kann es sich zum Beispiel um eine oder mehrere der elektronischen Vorrichtungen 102, 104, 106, die Switch-Vorrichtung 110, eine Routing-Vorrichtung, einen Desktop-Computer, einen Laptop-Computer, eine Tablet-Vorrichtung, ein Telefon und/oder allgemein eine beliebige elektronische Vorrichtung handeln, oder es kann eines oder mehrere davon beinhalten. Ein solches elektronisches System 800 weist verschiedene Arten von computerlesbaren Medien und Schnittstellen zu verschiedenen anderen Arten von computerlesbaren Medien auf. Das elektronische System 800 weist einen Bus 808, eine oder mehrere Verarbeitungseinheit(en) 812, einen Systemspeicher 804, einen Nur-Lesespeicher (ROM) 810, eine Permanentspeichervorrichtung 802, eine Schnittstelle für Eingabevorrichtungen 814, eine Schnittstelle für Ausgabevorrichtungen 806, eine oder mehrere Netzwerkschnittstelle(n) 816 und/oder Teilmengen und Variationen davon auf.
  • Der Bus 808 verkörpert zusammenfassend alle Systembusse, Peripheriebusse und Chipsatzbusse, welche die zahlreichen internen Vorrichtungen des elektronischen Systems 800 kommunikativ verbinden. Bei einer oder mehreren Implementierungen verbindet der Bus 808 kommunikativ die eine oder die mehreren Verarbeitungseinheit(en) 812 mit dem ROM 810, dem Systemspeicher 804 und der Permanentspeichervorrichtung 802. Von diesen verschiedenen Speichereinheiten rufen die eine oder die mehreren Verarbeitungseinheit(en) 812 auszuführende Anweisungen und zu verarbeitende Daten ab, um die Prozesse der beanspruchten Offenbarung auszuführen. Bei der einen oder den mehreren Verarbeitungseinheit(en) 812 kann es sich in unterschiedlichen Implementierungen um einen einzelnen Prozessor oder um einen Mehrkernprozessor handeln.
  • In dem ROM 810 sind statische Daten und Anweisungen gespeichert, die von der einen oder den mehreren Verarbeitungseinheit(en) 812 und anderen Modulen des elektronischen Systems 800 genutzt werden. Andererseits kann es sich bei der Permanentspeichervorrichtung 802 um eine Lese- und Schreib-Speichervorrichtung handeln. Bei der Permanentspeichervorrichtung 802 kann es sich um eine nichtflüchtige Speichereinheit handeln, in der Anweisungen und Daten selbst dann gespeichert werden, wenn das elektronische System 800 ausgeschaltet ist. Bei einer oder mehreren Implementierungen kann eine Massenspeichervorrichtung (wie beispielsweise eine Magnetplatte oder eine optische Platte und das entsprechende Plattenlaufwerk) als Permanentspeichervorrichtung 802 verwendet werden.
  • Bei einer oder mehreren Implementierungen kann eine Wechselspeichervorrichtung (wie beispielsweise eine Diskette, ein Flash-Laufwerk und das entsprechende Plattenlaufwerk) als Permanentspeichervorrichtung 802 verwendet werden. Wie bei der Permanentspeichervorrichtung 802 kann es sich bei dem Systemspeicher 804 um eine Lese- und Schreib-Speichervorrichtung handeln. Im Gegensatz zu der Permanentspeichervorrichtung 802 kann es sich bei dem Systemspeicher 804 jedoch um einen flüchtigen Lese- und Schreibspeicher handeln, wie beispielsweise ein RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff). In dem Systemspeicher 804 können eine oder mehrere der Anweisungen und/oder Daten gespeichert sein, die von der einen oder den mehreren Verarbeitungseinheit(en) 812 zur Laufzeit genutzt werden können. Bei einer oder mehreren Implementierungen sind die Prozesse der beanspruchten Offenbarung in dem Systemspeicher 804, in der Permanentspeichervorrichtung 802 und/oder in dem ROM 810 gespeichert. Aus diesen verschiedenen Speichereinheiten rufen die eine oder die mehreren Verarbeitungseinheit(en) 812 auszuführende Anweisungen und zu verarbeitende Daten ab, um die Prozesse einer oder mehrerer Implementierungen auszuführen.
  • Der Bus 808 stellt außerdem eine Verbindung mit den Schnittstellen für Eingabe- und Ausgabevorrichtungen 814 und 806 her. Die Schnittstelle für Eingabevorrichtungen 814 ermöglicht es einem Benutzer, Informationen zu übermitteln und Befehle an das elektronische System 800 auszuwählen. Eingabevorrichtungen, die mit der Schnittstelle für Eingabevorrichtungen 814 verwendet werden können, können zum Beispiel alphanumerische Tastaturen und Zeigevorrichtungen (diese werden auch als „Cursor-Steuerungsvorrichtungen“ bezeichnet) umfassen. Die Schnittstelle für Ausgabevorrichtungen 806 kann zum Beispiel die Anzeige von Bildern ermöglichen, die mittels des elektronischen Systems 800 generiert wurden. Ausgabevorrichtungen, die mit der Schnittstelle für Ausgabevorrichtungen 806 verwendet werden können, können zum Beispiel Drucker und Anzeigevorrichtungen umfassen, wie beispielsweise eine LCD-Anzeigeeinheit (Liquid Crystal Display, Flüssigkristallanzeige), eine LED-Anzeigeeinheit (Light Emitting Diode, Leuchtdiode), eine OLED-Anzeigeeinheit (Organic Light Emitting Diode, organische Leuchtdiode), ein flexibles Display, einen Flachbildschirm, ein Festkörperdisplay, einen Projektor oder jede sonstige Vorrichtung zur Ausgabe von Informationen. Eine oder mehrere Implementierungen können Vorrichtungen umfassen, die sowohl als Eingabe- als auch als Ausgabevorrichtung funktionieren, wie beispielsweise einen Touchscreen. Bei diesen Implementierungen kann es sich bei den dem Benutzer bereitgestellten Rückmeldungen um jede beliebige Form von sensorischer Rückmeldung handeln, wie beispielsweise visuelle Rückmeldungen, akustische Rückmeldungen oder taktile Rückmeldungen; und Eingaben von dem Benutzer können in jeder beliebigen Form empfangen werden, einschließlich akustischer Eingaben, Spracheingaben oder taktiler Eingaben.
  • Wie in 8 gezeigt, koppelt der Bus 808 außerdem das elektronische System 800 über eine oder mehrere Netzwerkschnittstelle(n) 816 mit einem oder mehreren Netzwerken (nicht gezeigt). Die eine oder mehreren Netzwerkschnittstelle(n) können eine optische Schnittstelle, eine Ethernet-Schnittstelle, eine drahtlose Schnittstelle, eine MoCA-Schnittstelle (Multimedia Over Coax Alliance), eine RGMII-Schnittstelle (Reduced Gigabit Media Independent Interface, reduzierte medienunabhängige Gigabit-Schnittstelle) oder allgemein jede beliebige Schnittstelle zum Herstellen einer Verbindung mit einem Netzwerk umfassen. Auf diese Weise kann das elektronische System 800 Bestandteil eines oder mehrerer Netzwerke von Computern (wie beispielsweise eines lokalen Netzwerks (LAN, Local Area Network), eines Weitverkehrsnetzwerks (WAN, Wide Area Network) oder eines Intranet oder eines aus Netzwerken bestehenden Netzwerks, wie beispielsweise das Internet) sein. Beliebige oder alle Komponenten des elektronischen Systems 800 können in Verbindung mit der beanspruchten Offenbarung verwendet werden.
  • Implementierungen innerhalb des Schutzumfangs der vorliegenden Offenbarung können teilweise oder vollständig unter Verwendung eines materiellen, computerlesbaren Speichermediums (oder mehrerer materieller, computerlesbarer Speichermedien eines oder mehrerer Typen) ausgeführt werden, welche eine oder mehrere Anweisungen codieren. Das materielle, computerlesbare Speichermedium kann außerdem von seiner Art her persistent sein.
  • Bei dem computerlesbaren Speichermedium kann es sich um jedes beliebige Speichermedium handeln, das gelesen und beschrieben werden kann oder auf das auf andere Weise mittels einer für einen allgemeinen Zweck oder einen speziellen Zweck vorgesehenen Computervorrichtung zugegriffen werden kann, einschließlich beliebiger Verarbeitungselektronik und/oder Verarbeitungsschaltungsanordnungen, die in der Lage sind, Anweisungen auszuführen. Zum Beispiel kann das computerlesbare Medium jeden beliebigen flüchtigen Halbleiterspeicher, wie beispielsweise RAM, DRAM, SRAM, T-RAM, Z-RAM und TTRAM, ohne Beschränkung auf diese, umfassen. Das computerlesbare Medium kann außerdem jeden beliebigen nichtflüchtigen Halbleiterspeicher umfassen, wie beispielsweise ROM, PROM, EPROM, EEPROM, NVRAM, Flash-Speicher, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, Racetrack-Speicher, FJG- und Millipede-Speicher.
  • Ferner kann das computerlesbare Speichermedium jeden beliebigen Nicht-HalbleiterSpeicher umfassen, wie beispielsweise einen optischen Festplattenspeicher, einen Magnetplattenspeicher, ein Magnetband, andere Magnetspeichervorrichtungen oder jedes beliebige andere Medium, das eine oder mehrere Anweisungen speichern kann. Bei einer oder mehreren Implementierungen kann das materielle, computerlesbare Speichermedium direkt mit einer Computervorrichtung gekoppelt sein, während bei anderen Implementierungen das materielle, computerlesbare Speichermedium indirekt mit einer Computervorrichtung gekoppelt sein kann, zum Beispiel über eine oder mehrere drahtgebundene Verbindungen, eine oder mehrere drahtlose Verbindungen oder eine beliebige Kombination aus diesen.
  • Anweisungen können direkt ausführbar sein oder können dazu verwendet werden, ausführbare Anweisungen zu entwickeln. Zum Beispiel können Anweisungen als ausführbarer oder nicht ausführbarer Maschinencode oder als Anweisungen in einer höheren Sprache ausgeführt sein, die kompiliert werden können, um ausführbaren oder nicht ausführbaren Maschinencode zu erzeugen. Ferner können Anweisungen auch als Daten ausgeführt sein oder Daten umfassen. Mittels eines Computers ausführbare Anweisungen können außerdem in einem beliebigen Format organisiert sein, einschließlich Routinen, Subroutinen, Programme, Datenstrukturen, Objekte, Module, Anwendungen, Applets, Funktionen, usw. Wie die Fachleute auf diesem Gebiet erkennen, können Einzelheiten, einschließlich, aber nicht beschränkt auf die Anzahl, Struktur, Sequenz und Organisation von Anweisungen, deutlich variieren, ohne dass die zu Grunde liegende Logik, Funktion, Verarbeitung und Ausgabe variiert wird.
  • Während die obige Erörterung hauptsächlich Mikroprozessoren oder Mehrkernprozessoren betrifft, die Software ausführen, werden eine oder mehrere Implementierungen mittels einer oder mehrerer integrierter Schaltungen ausgeführt, wie beispielsweise ASICs (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung) oder FPGAs (Field Programmable Gate Array, feldprogrammierbare Gatteranordnung). Bei einer oder mehreren Implementierungen führen solche integrierten Schaltungen Anweisungen aus, die in der Schaltung selbst gespeichert sind.
  • Die Fachleute auf diesem Gebiet würden erkennen, dass die verschiedenen, in dem vorliegenden Dokument beschriebenen, der Veranschaulichung dienenden Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen als elektronische Hardware, Computersoftware oder eine Kombination aus beiden implementiert werden können. Um diese Austauschbarkeit von Hardware und Software zu veranschaulichen, wurden oben verschiedene der Veranschaulichung dienende Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen allgemein im Hinblick auf ihre Funktionalität beschrieben. Ob eine solche Funktionalität als Hardware oder als Software implementiert ist, hängt von der jeweiligen Anwendung und den Konstruktionsrandbedingungen ab, denen das Gesamtsystem unterliegt. Fachleute auf diesem Gebiet können die beschriebene Funktionalität auf unterschiedlichen Wegen für jede bestimmte Anwendung implementieren. Verschiedene Komponenten und Blöcke können auf andere Weise angeordnet sein (zum Beispiel in einer anderen Reihenfolge angeordnet oder auf andere Weise aufgeteilt sein), ohne dass von dem Schutzumfang der beanspruchten Technologie abgewichen wird.
  • Es versteht sich, dass jede beliebige spezifische Reihenfolge oder Hierarchie von Blöcken in den offenbarten Prozessen eine Veranschaulichung von beispielhaften Ansätzen ist. Es versteht sich, dass die spezifische Reihenfolge oder Hierarchie von Blöcken in den Prozessen auf der Grundlage von Konstruktionsvorlieben umgeordnet werden kann oder dass alle veranschaulichten Blöcke ausgeführt werden. Beliebige der Blöcke können gleichzeitig ausgeführt werden. Bei einer oder mehreren Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein. Des Weiteren sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsbeispielen nicht so verstanden werden, als dass eine solche Trennung in allen Ausführungsbeispielen erforderlich ist, und es sollte sich verstehen, dass die beschriebenen Programmkomponenten und Systeme allgemein zusammen in einem einzelnen Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt werden können.
  • Für die Zwecke der Patentschrift bedeuten die Begriffe „Anzeige“ bzw. „anzeigen“ das Anzeigen auf einer elektronischen Vorrichtung.
  • Die prädikativen Formulierungen „so konfiguriert, dass“, „dahingehend betriebsfähig, dass“ und „so programmiert, dass“ implizieren keine besondere materielle oder immaterielle Änderung eines Gegenstands, sondern sollen vielmehr miteinander austauschbar verwendet werden. Bei einer oder mehreren Implementierungen kann die Aussage, dass ein Prozessor so konfiguriert ist, dass er eine Operation oder eine Komponente überwacht und steuert, auch bedeuten, dass der Prozessor so programmiert ist, dass er die Operation überwacht und steuert, oder dass der Prozessor dahingehend betriebsfähig ist, dass er die Operation überwacht und steuert. Analog kann die Aussage, dass ein Prozessor so konfiguriert ist, das er Code ausführt, so ausgelegt werden, dass ein Prozessor so programmiert ist, dass er Code ausführt, oder dass er dahingehend betriebsfähig ist, dass er Code ausführt.

Claims (10)

  1. Vorrichtung (210A), die Folgendes umfasst: eine zum Puffern erster Zellen zur Übertragung konfigurierte Speicherverwaltungseinheit (214A); eine Austrittszellenschaltung (215A), die wenigstens eine erste Warteschlange (505A) und eine zweite Warteschlange (505B) umfasst, wobei die Austrittszellenschaltung (215A) für Folgendes konfiguriert ist: Einreihen der ersten Zellen aus der Speicherverwaltungseinheit (214A) in die erste Warteschlange (505A); Einreihen von zweiten Zellen aus einer anderen Speicherverwaltungseinheit (214B) einer anderen Vorrichtung (210B) in die zweite Warteschlange (505B); und Einplanen der ersten Zellen aus der ersten Warteschlange (505A) und der zweiten Zellen aus der zweiten Warteschlange (505B) zur Übertragung über einen Austrittsprozessor (218A), den Austrittsprozessor (218A), der so konfiguriert ist, dass er die ersten und die zweiten Zellen durch wenigstens einen ersten Port überträgt; und eine Durchgangsschaltung (212A), die mit einer anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B) kommunikativ gekoppelt ist, wobei die Durchgangsschaltung (212A) für Folgendes konfiguriert ist: Empfangen einer Anforderung von wenigstens einigen der ersten Zellen von der anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B); Abrufen der wenigstens einigen der ersten Zellen aus der Speicherverwaltungseinheit (214A); und Übertragen der wenigstens einigen der ersten Zellen an die andere Durchgangsschaltung (212B) der anderen Vorrichtung (210B) zur Übertragung über einen anderen Austrittsprozessor (218B) durch wenigstens einen zweiten Port der anderen Vorrichtung (210B), wobei die wenigstens einigen der ersten Zellen nicht über den Austrittsprozessor (218A) der Vorrichtung (210A) durch den wenigstens einen ersten Port übertragen werden.
  2. Vorrichtung (210A) nach Anspruch 1, wobei die Durchgangsschaltung (212A) ferner für Folgendes konfiguriert ist: Empfangen der zweiten Zellen von der anderen Speicherverwaltungseinheit (214B) der anderen Vorrichtung (210B) über die andere Durchgangsschaltung (212B), ohne dass die zweiten Zellen einen anderen Austrittsprozessor (218B) der anderen Vorrichtung (210B) durchlaufen; und Übergeben der zweiten Zellen, unter Umgehung der Speicherverwaltungseinheit (214A) der Vorrichtung (210A), direkt an die Austrittszellenschaltung (215A).
  3. Vorrichtung (210A) nach Anspruch 2, wobei die Durchgangsschaltung (212A) eine Empfangswarteschlange umfasst, wobei die Durchgangsschaltung (212A) ferner so konfiguriert ist, dass sie die zweiten Zellen vor dem direkten Übergeben der zweiten Zellen an die Austrittszellenschaltung (215A) in die Empfangswarteschlange einreiht.
  4. Vorrichtung (210A) nach Anspruch 2, die ferner Folgendes umfasst: einen Eintrittsprozessor, der so konfiguriert ist, dass er die ersten Zellen empfängt und die ersten Zellen der Speicherverwaltungseinheit (214A) bereitstellt.
  5. Vorrichtung (210A) nach Anspruch 4, wobei die Durchgangsschaltung (212A) der Vorrichtung (210A) über eine erste Verbindung direkt mit der anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B) gekoppelt ist und die Durchgangsschaltung (212A) der Vorrichtung (210A) über eine durch eine zwischengeschaltete Durchgangsschaltung einer Zwischenvorrichtung verlaufende, zweite Verbindung gesondert indirekt mit der anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B) gekoppelt ist.
  6. Vorrichtung (210A) nach Anspruch 5, wobei die Durchgangsschaltung (212A) einen Scheduler (410) umfasst, der für Folgendes konfiguriert ist: Empfangen von ersten Verbindungsinformationen für die erste Verbindung und von zweiten Verbindungsinformationen für die zweite Verbindung; Bestimmen einer von der ersten oder der zweiten Verbindung zum Übertragen der wenigstens einigen der ersten Zellen an die Durchgangsschaltung (212B) der anderen Vorrichtung (210B) wenigstens teilweise auf der Grundlage der ersten Verbindungsinformationen und der zweiten Verbindungsinformationen; und Übertragen der wenigstens einigen der ersten Zellen an die andere Vorrichtung (210B) über die bestimmte erste oder zweite Verbindung.
  7. Vorrichtung (210A) nach Anspruch 6, wobei es sich bei der Vorrichtung (210A), der anderen Vorrichtung (210B) und der Zwischenvorrichtung jeweils um gesonderte integrierte Schaltungen handelt.
  8. Vorrichtung (210A), die Folgendes umfasst: einen Eintrittsprozessor, der so konfiguriert ist, dass er erste Zellen empfängt und die ersten Zellen einer Speicherverwaltungseinheit (214A) bereitstellt; die Speicherverwaltungseinheit (214A), die so konfiguriert ist, dass sie die ersten Zellen zur Übertragung puffert; einen Austrittsprozessor (218A), der so konfiguriert ist, dass er wenigstens einen Teil der ersten Zellen durch wenigstens einen ersten Port überträgt; eine Durchgangsschaltung (212A), die mit einer anderen Durchgangsschaltung (212B) einer anderen Vorrichtung (210B) kommunikativ gekoppelt ist, wobei die Durchgangsschaltung (212A) für Folgendes konfiguriert ist: Empfangen einer Anforderung von wenigstens einigen der ersten Zellen von der anderen Durchgangsschaltung (212B) der anderen Vorrichtung (210B); Abrufen der wenigstens einigen der ersten Zellen aus der Speicherverwaltungseinheit (214A) über einen Lese-Port der Speicherverwaltungseinheit (214A); und Übertragen der wenigstens einigen der ersten Zellen an die andere Durchgangsschaltung (212B) der anderen Vorrichtung (210B) zur Übertragung über einen anderen Austrittsprozessor (218B) durch wenigstens einen zweiten Port der anderen Vorrichtung (210B), wobei die wenigstens einigen der ersten Zellen den Austrittsprozessor (218A) der Vorrichtung (210A) umgehen.
  9. Verfahren, das Folgendes umfasst: Abrufen von ersten Zellen von einer Chip-internen Speicherverwaltungseinheit, wobei die ersten Zellen über einen Chip-internen Eintrittsprozessor empfangen worden sind; Empfangen von zweiten Zellen von einer ersten Chip-externen Speicherverwaltungseinheit und von dritten Zellen von einer zweiten Chip-externen Speicherverwaltungseinheit, wobei die zweiten Zellen über einen ersten Chip-externen Eintrittsprozessor empfangen worden sind und die dritten Zellen mittels eines zweiten Chip-externen Eintrittsprozessors empfangen worden sind; Einplanen der ersten, zweiten und dritten Zellen zur Übertragung über einen Chip-internen Austrittsprozessor ohne Puffern der zweiten oder dritten Zellen in der Chip-internen Speicherverwaltungseinheit; und Übertragen der ersten, zweiten und dritten Zellen durch wenigstens einen Port über den Chip-internen Austrittsprozessor.
  10. Vorrichtung, welche dafür eingerichtet ist, das Verfahren nach Anspruch 9 auszuführen.
DE102017000530.3A 2016-02-09 2017-01-20 Skalierbare Maschinennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips Active DE102017000530B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662293287P 2016-02-09 2016-02-09
US62/293,287 2016-02-09
US15/063,387 US10102168B2 (en) 2016-02-09 2016-03-07 Scalable low-latency mesh interconnect for switch chips
US15/063,387 2016-03-07

Publications (2)

Publication Number Publication Date
DE102017000530A1 DE102017000530A1 (de) 2017-08-10
DE102017000530B4 true DE102017000530B4 (de) 2023-12-21

Family

ID=59382565

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017000530.3A Active DE102017000530B4 (de) 2016-02-09 2017-01-20 Skalierbare Maschinennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips

Country Status (1)

Country Link
DE (1) DE102017000530B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179642A1 (en) 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
US20130336332A1 (en) 2012-06-15 2013-12-19 Broadcom Corporation Scaling output-buffered switches
US8868889B2 (en) 2010-03-12 2014-10-21 Lsi Corporation Instruction breakpoints in a multi-core, multi-thread network communications processor architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868889B2 (en) 2010-03-12 2014-10-21 Lsi Corporation Instruction breakpoints in a multi-core, multi-thread network communications processor architecture
US20130179642A1 (en) 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
US20130336332A1 (en) 2012-06-15 2013-12-19 Broadcom Corporation Scaling output-buffered switches

Also Published As

Publication number Publication date
DE102017000530A1 (de) 2017-08-10

Similar Documents

Publication Publication Date Title
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
DE102019122363A1 (de) Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte)
DE112020001833T5 (de) Netzwerkschnittstelle für Datentransport in heterogenen Rechenumgebungen
DE102013200161A1 (de) Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung
DE60314205T2 (de) Arbiter für ein Vermittlungssystem mit Eingangspuffer
DE102019116213A1 (de) Qualität von für Enterprise-Halbleiterlaufwerke optimierten dienstbasierten Arbitrierungen
DE102016100902A1 (de) Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen
DE102020133269A1 (de) Konfigurieren von Parametern von Zielsubsystemen von nichtflüchtigem Speicher für die Arbeitslast-Anforderungs-Servicequalität
DE102020118494A1 (de) Technologien zur behandlung einer latenzbasierten dienstebenenvereinbarung in fern-direktspeicherzugriffsnetzen
DE202010017668U1 (de) Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung
DE102014117465A1 (de) Unterstützter kohärenter gemeinsamer Speicher
DE102015119894A1 (de) Techniken für die zusammenarbeitende Ausführung zwischen asymmetrischen Prozessorkernen
DE112020004673T5 (de) Mehrpfad-Paketdeskriptor-Zustellschema
DE102014117462A1 (de) Poolen von Speicherressourcen über mehrere Knoten hinweg
DE112013000381T5 (de) Datenverschlüsselung auf der Grundlage einer Speicheradressumsetzung
DE112017001808T5 (de) Technologien für einen verteilten hardwarewarteschlangenmanager
DE102022104207A1 (de) Pooling von Netzwerkverarbeitungsressourcen
DE102020119017A1 (de) Ausgang aus Eingangswarteschlangen mit Gerechtigkeit auf Zeitstempelbasis
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
DE102014019531A1 (de) Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102021122233A1 (de) Beschleuniger-controller-hub
DE102020130534A1 (de) System, Vorrichtung und Verfahren zum persistenten Umgehen mit Speicheranforderungen in einem System

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

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

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

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012861000

Ipc: H04L0049900000

R130 Divisional application to

Ref document number: 102017012489

Country of ref document: DE

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