DE112005001556T5 - Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern - Google Patents

Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern Download PDF

Info

Publication number
DE112005001556T5
DE112005001556T5 DE112005001556T DE112005001556T DE112005001556T5 DE 112005001556 T5 DE112005001556 T5 DE 112005001556T5 DE 112005001556 T DE112005001556 T DE 112005001556T DE 112005001556 T DE112005001556 T DE 112005001556T DE 112005001556 T5 DE112005001556 T5 DE 112005001556T5
Authority
DE
Germany
Prior art keywords
network
network packets
packets
packet
network packet
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.)
Ceased
Application number
DE112005001556T
Other languages
English (en)
Inventor
Shubhendu S. Framingham Mukherjee
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005001556T5 publication Critical patent/DE112005001556T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

Verfahren das Folgendes umfaßt:
Durchsuchen mindestens eines Eingabepuffers zur Identifizierung von mindestens zwei Netzwerkpaketen mit unterschiedlicher Quelle und einem übereinstimmenden Ziel, wobei jedes Netzwerkpaket eine einzige Kohärenzprotokollmeldung beinhaltet, Verbinden der in den identifizierten Netzwerkpaketen befindlichen Kohärenzprotokollmeldungen in einem zusammengefügten Netzwerkpaket; und
Übertragen des zusammengefügten Netzwerkpakets zum übereinstimmenden Ziel.

Description

  • GEBIET DER ERFINDUNG
  • Eine oder mehrere Ausführungsformen der Erfindung beziehen sich allgemein auf das Gebiet des Designs von integrierten Schaltkreisen und Computersystemen. Insbesondere beziehen sich eine oder mehrere Ausführungsformen der Erfindung auf ein Verfahren und eine Vorrichtung zum Zusammenfügen von Paketen in Netzwerk-Verbindungsroutern.
  • HINTERGRUND DER ERFINDUNG
  • 16 oder mehr Prozessoren umfassende, Cache-kohärente Multiprozessorsysteme mit gemeinsamer Speichernutzung sind mittlerweile als Servermaschinen verbreitet. Aus dem Verkauf derartiger Maschinen resultierendes Einkommen stellt einen steigenden Prozentsatz der weltweiten Servereinnahmen dar. Die Einnahmen aus diesem Marksegment sind in den letzten Jahren beträchtlich gestiegen und machen dieses Segment möglicherweise zum am schnellsten wachsenden Segment im gesamten Servermarkt. Daher bieten führende Anbieter derartige Multiprozessoren mit gemeinsamer Speichernutzung an, wobei diese Multiprozessoren in einem Bereich zwischen 24 und 512 Prozessoren aufsteigen.
  • Hochleistungsverbindungsnetzwerke sind entscheidend für den Erfolg von groß angelegten Multiprozessoren mit gemeinsam genutztem Speicher. Derartige Netzwerke ermöglichen die Kommunikation zwischen einer großen Anzahl an Prozessoren und Speichermodulen unter Verwendung eines Cache-Kohärenzprotokolls. In derartigen Systemen werden ein Cache-Fehltreffer eines Prozessors bei einem entfernten Speichermodul (oder zum Cache eines anderen Prozessors) („Fehltrefferanforderung") und eine folgende Fehltrefferantwort in Netzwerkpaketen eingekapselt und an die entsprechenden Prozessoren oder Speicher übermittelt. Gemäß der hier vorliegenden Beschreibung beziehen sich Fehltrefferanforderungen und Fehltrefferantworten auf Kohärenzprotokollmeldungen.
  • Die Leistung zahlreicher Parallelanwendungen wie Datenbankserver hängt davon ab, wie rasch und wie viele der Kohärenzprotokollmeldungen vom System verarbeitet werden können. Folglich ist es wichtig für Netzwerke, Kohärenzprotokollmeldungen enthaltende Pakete mit niedriger Latenz und hoher Bandbreite übermitteln zu können. Die Netzwerkbandbreite ist jedoch häufig eine kostbare Ressource und Kohärenzprotokolle nutzen die Bandbreite nicht immer effektiv. Des Weiteren ist der Transport eines Pakets im Netzwerk typischerweise stets mit einem bestimmten Aufkommen an Zusatzdaten (Overhead) verbunden.
  • Die zum Transport eines Pakets im Netzwerk erforderlichen Zusatzdaten können Routing-Information sowie Information zur Fehlerkorrektur umfassen. So verzeichnen zum Beispiel manche Multiprozessoren mit gemeinsamer Speichernutzung beim Transport einer 64-Byte-Nutzlast bis zu 16 % Zusatzdaten. Mit zunehmender Größe der Paket-Nutzlast nimmt jedoch das mit dem Transport des Pakets im Netzwerk verbundene Aufkommen an Zusatzdaten ab. Somit würde für einen Multiprozessor mit gemeinsamer Speichernutzung, der 16% Zusatzdaten zum Transport einer 64-Byte-Nutzlast erfordert, dies bei Netzwerkpaketen mit einer 128-Byte-Nutzlast auf etwa 9 % Zusatzdaten reduziert.
  • Unglücklicherweise sind Kohärenzprotokollmeldungen enthaltende Netzwerkpakete gewöhnlich kleiner, da sie einfache Kohärenzinformation (z. B. eine Bestätigungs- oder eine Anforderungsmeldung) oder kleine Cache-Blöcke (z. B. 64 Bytes) tragen. Folglich nutzen Kohärenzprotokollmeldungen enthaltende Netzwerkpakete die Netzwerkbandbreite gewöhnlich nicht effektiv, wohingegen exotischere Hochleistungs-Kohärenzprotokolle eine wesentliche schlechtere Bandbreitennutzung aufweisen können.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die verschiedenen Ausführungsformen der vorliegenden Erfindung sind in den beigefügten Zeichnungen anhand von Beispielen dargestellt, wobei diese den Rahmen der Erfindung erläutern, jedoch nicht einschränken sollen:
  • 1 ist ein Blockdiagramm, das einen Prozessor gemäß einer Ausführungsform darstellt.
  • 2 ist ein Blockdiagramm, das ein Cache-Kohärenz-Multiprozessornetzwerk mit gemeinsamer Speichernutzung gemäß einer Ausführungsform darstellt.
  • 3 ist ein Blockdiagramm, das gemäß einer Ausführungsform den Verbindungsrouter in 1 eingehender darstellt.
  • 4 ist ein Blockdiagramm, das gemäß einer Ausführungsform den Verbindungsrouter in 3 eingehender darstellt.
  • 5 ist ein Blockdiagramm, das gemäß einer Ausführungsform eine oder mehrere Pipeline-Phasen des in den 3 und 4 dargestellten Netzwerkrouters eingehender darstellt.
  • 6 ist ein Blockdiagramm, das gemäß einer Ausführungsform ein zweidimensionales vermaschtes Netzwerk zum Zusammenfügen von Paketen in Verbindungsroutern darstellt.
  • 7 ist ein Flussdiagramm, das gemäß einer Ausführungsform ein Verfahren zum Zusammenfügen von Paketen in Verbindungsroutern darstellt.
  • 8 ist ein Flussdiagramm, das gemäß einer Ausführungsform ein Verfahren zum Verbinden von Kohärenzprotokollmeldungen in ein zusammengefügtes Netzwerkpaket darstellt.
  • 9 ist ein Flussdiagramm, das gemäß einer Ausführungsform ein Verfahren zum Verbinden von Kohärenzprotokollmeldungen bestimmter Netzwerkpakete in ein zusammengefügtes Netzwerkpaket darstellt.
  • 10 ist ein Blockdiagramm, das verschiedene Designdarstellungen oder Formate zur Simulation, Emulation und Herstellung eines die offenbarten Techniken anwendenden Designs darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Verfahren und eine Vorrichtung zum Zusammenfügen von Paketen in Netzwerk-Verbindungsroutern wird beschrieben. In einer Ausführungsform umfasst das Verfahren das Scannen von mindestens einem Eingabepuffer zur Identifizierung von mindestens zwei Netzwerkpaketen, die Kohärenzprotokollmeldungen enthalten und auf das gleiche Ziel gerichtet sind, jedoch aus unterschiedlichen Quellen. In einer Ausführungsform werden in den Netzwerkpaketen befindliche Kohärenzprotokollmeldungen in einem gemeinsamen Netzwerkpaket zusammengefügt. Nach dem Vereinen wird das zusammengefügte Netzwerkpaket zum gleichen bzw. gemeinsamen Ziel übertragen. In einer Ausführungsform verringert das Vereinen von mehreren Netzwerkpaketen (die jeweils eine einzige logische Kohärenzmeldung enthalten) zu einem größeren zusammengefügten Netzwerkpaket den festen Overhead beim Senden eines nur eine einzige Kohärenzmeldung enthaltenden Pakets im Vergleich zu einem größeren zusammengefügten Netzwerkpaket, um die Bandbreite besser zu nutzen.
  • In der folgenden Beschreibung werden bestimmte Ausdrücke zur Beschreibung von Eigenschaften der Erfindung verwendet. So kennzeichnet zum Beispiel die Bezeichnung „logisch" Hardware und/oder Software, die zur Ausführung einer oder mehrerer Funktionen konfiguriert ist. So können „Hardware" beispielsweise eine integrierte Schaltung, eine Maschine endlicher Zustände oder sogar Kombinationslogik umfassen, ohne jedoch darauf beschränkt zu sein. Eine integrierte Schaltung kann die Form eines Prozessors z. B. eines Mikroprozessors, einer anwendungsspezifischen integrierten Schaltung, eines digitalen Signalprozessors, eines Mikrocontrollers u. ä. annehmen.
  • Unter Beispiele für „Software" fallen u. a. ausführbarer Code in Form eines Anwendungsprogramms, kleiner Programme (Applets), einer Routine oder auch einer Reihe von Anweisungen. In einer Ausführungsform kann ein Fertigungsartikel ein maschinell oder Computer lesbares Medium beinhalten, auf dem Software gespeichert ist, die zur Programmierung eines Computers (oder anderer elektronischer Geräte) zur Durchführung eines Vorgangs gemäß einer Ausführungsform benutzt werden kann. Das Computer oder maschinell lesbare Medium umfasst, ist jedoch nicht begrenzt auf: Eine programmierbare elektronische Schaltung, eine Halbleiter-Speichereinrichtung einschließlich flüchtigem Speicher (z. B. Direktzugriffsspeicher etc.) und/oder nicht flüchtigem Speicher (z. B. jegliche Art von nur lesbaren Speicher (ROM), Flash-Speicher), eine Diskette, einen optischen Datenträger (z. B. CD oder digitale Videoplatte (DVD)), eine Festplatte, ein Band oder ähnliches.
  • System
  • 1 ist ein Blockdiagramm, das einen Prozessor 100 gemäß einer Ausführungs form darstellt. Beispielhaft umfasst der Prozessor 100 einen Prozessorkern 110, Cache-kohärente Hardware (nicht abgebildet), eine erste Speichersteuereinrichtung (MC) (MC1) 130, eine zweite Speichersteuereinrichtung (MC) (MC2) 140, Level 2 Cache-Daten (L2) einschließlich L2 Cache-Tags 150 und einen Verbindungsrouter 200 auf einem einzigen Chip. In einer Ausführungsform kann der Prozessor 100 mit einer Anzahl von Prozessoren 100 verbunden sein und an diese zur Bildung eines Multiprozessornetzwerks mit gemeinsamer Speichernutzung gekoppelt sein, gemäß einer Ausführungsform. In einer Ausführungsform ist ein Multiprozessornetzwerk beispielsweise mit 128 Prozessoren 100 in einem 2D-Torus-Netzwerk verbunden.
  • 2 zeigt ein Cache-Kohärenz-Multiprozessorsystem mit gemeinsamer Speichernutzung für eine 12-Prozessor-Konfiguration gemäß einer Ausführungsform.
  • Obgleich 2 ein Multiprozessorsystem mit gemeinsamer Speichernutzung darstellt, das 12 Multiprozessoren 100 umfasst, erkennen Fachleute, dass die hier beschriebenen Ausführungsformen auf eine variierende Anzahl von Prozessoren in einem Multiprozessornetzwerk mit gemeinsamer Speichernutzung angewendet werden können. In einer Ausführungsform kann der Verbindungsrouter 200 wie in 3 und 4 dargestellt, eine Steuereinrichtung zur Vereinigung mehrerer Kohärenzprotokollmeldungen in ein zusammengefügtes Netzwerkpaket zur Amortisierung der mit dem Pakettransport im Multiprozessornetzwerk 300 verbundenen Zusatzdaten beinhalten.
  • Wie hier dargelegt sind Netzwerkpakete und Flits Grundeinheiten in der Datenübertragung im Multiprozessornetzwerk 300. Ein Paket ist eine im Netzwerk von einem Router zu einem anderen übertragene Meldung und besteht aus einem oder mehreren Flits. Wie hier dargelegt, ist ein Flit ein Teil eines Pakets, das parallel auf einer einzelnen Flanke eines Takts übertragen wird. In einer Ausführungsform besteht ein Flit aus 39 Bit – 32 Bit Nutzdaten und 7 Bit pro Flit für Fehlerkorrekturcode (Error Correction Code = ECC). Beispielhaft kann jeder in 2 dargestellte Interprozessor-Eingangs- und Ausgangsanschluss 39 Bit weit sein. Es sind jedoch im Rahmen der hier dargelegten Ausführungsformen auch andere Interprozessor-Anschlussbreiten möglich.
  • Multiprozessornetzwerke wie das Multiprozessornetzwerk 300 sind gewöhnlich zur Übertragung von Paketen mit der größten unterstützten Paketgröße optimiert. In einem ein Cache-kohärentes Protokoll unterstützenden Netzwerk wird die größte Paketgröße typischerweise zum Transport eines 64- oder 128-Byte-Cache-Blocks eingesetzt. Es werden jedoch zahlreiche kurze Kohärenzprotokollmeldungen wie Anforderungen, Weiterleitung und Bestägiungen in einem Netzwerk übermittelt, was zur ineffizienten Nutzung der Netzwerkbandbreite führt. In einer Ausführungsform können mehrere derartige Kurzmeldungen zusammengefügt und in einem größeren Netzwerkpaket gesendet werden, und somit die größte Paketgröße vorteilhaft genutzt werden, für die das Netzwerk optimiert ist.
  • Des Weiteren stellt 3 den Verbindungsrouter 200 aus 1 dar, einschließlich einer Mischlogik 260 zur Verbindung mehrerer Netzwerkpakete, wobei jedes eine andere logische Kohärenzmeldung in ein einziges größeres Netzwerkpaket im Multiprozessornetzwerk 300 einbringt. In einer Ausführungsform ermöglicht dies die Amortisierung des Overhead für den Transport einer Kohärenzmeldung in einem Netzwerk 300 zur effektiveren Nutzung der verfügbaren Bandbreite. In einer Ausführungsform hängt die Anzahl der Pakete, die zu einem größeren Netzwerkpaket zusammengefügt werden können, von der Implementierung ab und ist bestimmt durch die Größe eines Cache-Blocks, der Größe des Netzwerkpakets, der Größe der Kohärenz-Leseanforderung, der Größe der Kohärenz-Schreibanforderung u. ä. Die Verbindung mehrerer Netzwerkpakete, die jeweils eine andere logische Kohärenzmeldung in ein einziges größeres Netzwerkpaket einbringen, wird hier als das „Zusammenfügen einer Kohärenzmeldung" bezeichnet.
  • Zurück zu 2: Herkömmlicherweise beginnt ein Paketfluss durch ein Multiprozessornetzwerk 300 damit, dass beim Prozessor ein Cache-Fehltreffer auftritt. Die Erfassung eines Cache-Fehltreffers resultiert typischerweise darin, dass eine Fehltrefferanforderung in einer Fehltrefferadressdatei (Miss Address File = MAF) in eine Warteschlange gestellt wird. Danach konvertiert eine Steuereinrichtung die Cache-Fehltrefferanforderung in ein Netzwerkpaket und sendet dieses Netzwerkpaket ins Netzwerk 300. Das Netzwerk 300 leitet das Paket zu einem Zielprozessor, dessen Speicher typischerweise die Anforderung verarbeitet und eine in einem Netzwerkpaket eingekapselte Cache-Fehltrefferanforderung zurückgibt. Das Netzwerk leitet das Antwortpaket zu dem Prozessor, der ursprünglich die Anforderung stellte. Gemäß der hier vorliegenden Beschreibung sind Cache-Fehltrefferanforderungen und Cache-Fehltrefferantworten Beispiele für Kohärenzprotokollmeldungen.
  • Wie 3 zeigt, umfasst ein Verbindungsrouter 200 Eingangsanschlüsse 230 und Eingabepuffer 240 zur Leitung von Netzwerkpaketen zu einem Ausgangsanschluss 250, wie von Kreuzschiene 220 und Zuteiler 210 bestimmt. Beispielhaft entsprechen die nördlichen, südlichen, östlichen und westlichen Interprozessor-Eingangsanschlüsse (231234) und die Interprozessor-Ausgangsanschlüsse (251254) („2D-Torus-Anschlüsse") Off-Chip-Verbindungen zum Multiprozessornetzwerk 300. MC1- und MC2-Eingangsanschlüsse (236 und 237) sowie Ausgangsanschlüsse (255 und 256) sind die beiden On-Chip Speichersteuereinrichtungen MC1 130 und MC2 140 (1). Der Cache-Eingangsanschluss 236 entspricht dem L2-Cache 120. Der L1-Ausgangsanschluss 255 stellt die Verbindung zu Cache L1 und MC2 130 her und der L2-Ausgangsanschluss 256, Cache L1 und MC2 140. Außerdem stellen die I/O-Anschlüsse 238 und 257 die Verbindung zu einem dem Multiprozessor 100 externen I/O-Chip 320 her.
  • 4 stellt des Weiteren einen Verbindungsrouter 200 einschließlich Mischlogik 260 gemäß einer Ausführungsform dar. Beispielhaft beinhalten Eingangsanschlüsse 230 zugehörige Eingabepuffer 241248. Der Router 200 stellt typischerweise die Pakete in den Puffern 241248 in eine Warteschlange. Diese Puffer können entweder zu einem Eingabeanschluss 230 gehören oder eine gemeinsam genutzte zentrale Ressource darstellen. In jedem Fall wählt der Zuteiler 210 Pakete aus diesen Puffern 241248 aus und leitet diese zu den entsprechenden Ausgangsanschlüssen 250 weiter. Während die Pakete in den Eingabepuffern 241248 warten, besteht eine einzigartige Gelegenheit, sie zu dem hier als "zusammengefügtes Netzwerkpaket" bezeichneten Netzwerkpaket zu verbinden. In einer alternativen Ausführungsform werden die zusammengefügten Netzwerkpakete von einem Ausgabepuffer gebildet, der beispielsweise an die Ausgangsanschlüsse gekoppelt ist.
  • Es gibt typischerweise zwei Quellen für eine derartige Zusammenführung. Einmal läuft bei zwei Prozessoren 100 die gemeinsame Nutzung häufig nach einem stabilen Muster ab, z. B. nach einem Erzeuger-Nerbrauchermuster. Daher sendet der Produzent Pakete häufig stoßweise (in Bursts) zu Konsumenten. Derartige Paket-Bursts gelangen beim gleichen Routen an und setzen ihren Weg in die gleiche Richtung fort. Der beanspruchte Gegenstand beschränkt sich jedoch nicht auf das vorstehende Beispiel des stoßweisen Paketaufkommens. In einer Ausführungsform können Kohärenzprotokollmeldungen in Paketen aus unterschiedlichen Quellprozessoren, die für den gleichen Prozessor bestimmt sind, in einem zusammengefügten Netzwerkpaket kombiniert werden und mittels Mischlogik 260 zu einem Ziel gesendet werden.
  • In einer Ausführungsform umfasst die Mischlogik 260 die Steuereinrichtung 262 zum Durchsuchen der Eingabepuffer 240 des Netzwerk-Verbindungsrouters 300 zur Erfassung von Netzwerkpaketen mit dem gleichen Ziel, die nur eine einzige Kohärenzprotokollmeldung beinhalten. In einer Ausführungsform wird die Implementierung der hier beschriebenen Zusammenfügung der Kohärenzmeldungen von der Steuereinrichtung 262 unter Einsatz des Mischpuffers 264 durchgeführt. In einer Ausführungsform wird zum Zusammenfügen der Kohärenzmeldungen wie in den 5A und 5B dargestellt eine zusätzliche Pipeline-Phase, im Weiteren als „Misch-Pipeline-Phase" bezeichnet, hinzugefügt.
  • In einer Ausführungsform wird ein Mischpuffer 264 für jeden entsprechenden Eingabepuffer des Verbindungsrouters 300 bereitgestellt. In einer alternativen Ausführungsform wird eine separate Zeigertabelle zur Verfolgung der Netzwerkpakete verwendet, die zur Zusammenfügung zu zusammengefügten Netzwerkpaketen identifiziert wurden. Gemäß dieser Ausführungsform wird eine Leselogik zur Verfolgung der Zeigerkette bereitgestellt, um identifizierte Pakete bei ihrem Weg durch die Pipeline des Netzwerkrouters 300 zu erfassen. In einer Ausführungsform werden Puffereinträge im Mischpuffer 264 zur Beinhaltung einer höchsten Paketgröße vorab zugeordnet. Gemäß einer derartigen Ausführungsform werden die Pakete beim Empfang vereint, indem Pakete direkt in die vorab zugeordneten Einträge des Mischpuffers 264 gestellt werden, die ein Netzwerkpaket enthalten, das zur Bildung eines zusammengefügten Netzwerkpakets verwendet werden soll. TABELLE 1
    Figure 00080001
  • Wie in den 5A und 5B dargestellt, kann eine Router-Pipeline aus verschiede nen Phasen bestehen, welche die folgenden Funktionen ausführen: In der Router-Tabelle nachschlagen, entschlüsseln, Ressourcen zuteilen (Arbitrierung), über die Kreuzschiene weiterleiten sowie Fehlerkorrektur-Codes berechnen. Ein vom lokalen Anschluss stammendes Paket fragt seine Router-Information in der Router-Tabelle ab und lädt sie in seine Kopfzeile. In der Entschlüsselungsphase wird die Information in dem Kopf eines Pakets entschlüsselt und die entsprechende Information in eine Eingabetabelle geschrieben, die den Zuteilungsstatus des Pakets enthält und in den darauf folgenden Zuteilungsphasen der Pipeline eingesetzt wird. Tabelle 1 definiert die verschiedenen in den 5A und 5B verwendeten Abkürzungen zur Beschreibung der Pipeline-Phasen.
  • 5A stellt die Router-Pipeline 270 für einen lokalen Eingangsanschluss (Cache- oder Speichersteuereinrichtung) zu einem Interprozessor-Ausgangsanschluss dar. Umgekehrt stellt 5B die Router-Pipeline 280 von einem Interprozessor-Eingangsanschluss (nördlich, südlich, östlich oder westlich) zu einem Interprozessor-Ausgangsanschluss dar. Dabei geht jeweils das erste Flit (272/282) durch zwei Pipelines (270-1 und 280-1); eine für Zeitplanung (obere Pipeline (270-3/280-3) und eine weitere für Daten (untere Pipeline (270-4/280-4). Das zweite Flit (272/282) und folgende Flits folgen der Daten-Pipeline (270-2/280-2). In einer Ausführungsform folgt nach der Warteschlangenphase eine Mischphase, in der die Steuereinrichtung 262 die Kohärenzprotokollmeldungen enthaltenden Pakete durchsuchen und verbinden kann.
  • Wie dargestellt wird die Pipeline-Mischphase (M) vor der Pipeline-Phase vor der Schreib-Eingangswarteschlange eingefügt. Entsprechend kann die Steuereinrichtung 262 in einer Ausführungsform nach der Entschlüsselungsphase (DW) das Ziel eines Netzwerkpakets ermitteln. In der Folge kann die Steuereinrichtung 262 in der Mischphase (M) bestimmen, ob das erfasste Paket mit einem vorhandenen Paket vereint werden kann. In einer Ausführungsform wird die Verfolgung eines Netzwerkpakets mit einer Kohärenzprotokollmeldung, das mit einem anderen Netzwerkpaket zur Bildung eines zusammengefügten Netzwerkpakets vereint werden kann, durch Hinzufügen eines Zeigers durchgeführt, zum Beispiel in eine Zeigertabelle, die auf das erfasste Paket hinweist. In der Folge kann das zusammengefügte Netzwerkpaket gebildet werden, bevor das zusammengefügte Netzwerkpaket zu einem Ausgangsanschluss übertragen wird.
  • Wie in 4 weiterhin dargestellt wird, kann der Zuteiler 210 sowohl lokale Zutei lungslogik (L) als auch globale Zuteilungslogik (G) umfassen. In einer Ausführungsform besteht die Zuteilungs-Pipeline aus drei Phasen: LA (Zuteilung des Eingangsanschlusses), RE (Lesen der Eingangstabelle und Transport) und GA (Zuteilung des Ausgangsanschlusses) (siehe Tabelle 1). In der Phase der Zuteilung des Eingangsanschlusses werden Pakete der Eingangspuffer 241248 gefunden und zur Zuteilung des Ausgangsanschlusses G nominiert. In einer Ausführungsform hat jeder Eingabepuffer 240 zwei Leseanschlüsse und jeder Leseanschluss hat einen zugehörigen Eingangsanschluss-Zuteiler L.
  • In einer Ausführungsform führen die Eingangsanschluss-Zuteiler L anhand der Informationen in der Eingabetabelle mehrere Bereitschaftsprüfungen durch; so ermitteln sie, ob der angepeilte Ausgangsanschluss frei ist. In einer Ausführungsform akzeptieren die Ausgangsanschluss-Zuteiler G Paketnominierungen von den Eingangsanschluss-Zuteilern und entscheiden, welche Pakete gesendet werden. Jeder Ausgangsanschluss 250 verfügt über einen Zuteiler. Nachdem ein Ausgangsanschluss-Zuteiler G ein Paket zum Versand ausgewählt hat, informiert er die Eingangsanschluss-Zuteiler L über seine Entscheidung, damit die Eingangsanschluss-Zuteiler L die nicht ausgewählten Pakete in nachfolgenden Zyklen neu nominieren können.
  • In einer Ausführungsform sucht die Steuereinrichtung 262 durch den Zugriff auf die Eingangspuffer 240 über einen zusätzlichen Leseanschluss nach Paketen, die in die gleiche Richtung gehen. In der dargestellten Ausführungsform untersucht die Steuereinrichtung 262 die verschiedenen Eingangspuffer 240, um Pakete aus verschiedenen Quellen zu finden, die auf das gleiche Ziel gerichtet sind. In einer Ausführungsform umfasst die Steuereinrichtung 262 einen Mischpuffer 264, der zur Speicherung erfasster Netzwerkpakete dienen kann, die Kohärenzprotokollmeldungen mit der gleichen Richtung enthalten, wie zum Beispiel einen Multiprozessor im Netzwerk 300.
  • In einer Ausführungsform wird die Bildung des zusammengefügten Netzwerkpakets vor der Weiterleitung des zusammengefügten Netzwerkpakets an einen Ausgangsanschluss 250 über die Kreuzschiene 220 durchgeführt. In einer Ausführungsform kann der Netzwerkrouter 200 einen gemeinsamen Ressource-Eingangspuffer umfassen. Gemäß einer derartigen Ausführungsform sucht eine Steuereinrichtung 262 im zentralen Puffer nach Netzwerkpaketen aus unterschiedlicher Quelle, die auf das gleiche Ziel gerichtet sind. Nach der Erfassung kann die Steuereinheit 262 Netzwerkpakete identifizieren, die eine einzige Kohärenzproto kollmeldung enthalten, und die Kohärenzprotokollmeldungen zusammenfügen. Im Folgenden sind die Verfahren zur Implementierung einer oder mehrerer Ausführungsformen beschrieben.
  • Funktionsweise
  • 7 ist ein Flussdiagramm, das ein Verfahren zum Zusammenfügen von Paketen in Verbindungsroutern gemäß einer Ausführungsform darstellt, wie sie beispielsweise in den 1-6 dargestellt ist. Im Verarbeitungsblock 502 wird mindestens ein Eingabepuffer zur Identifizierung von mindestens zwei Netzwerkpaketen, die Kohärenzprotokollmeldungen enthalten, mit gleichem Ziel durchsucht. Nach ihrer Erfassung im Verarbeitungsblock 510 werden die Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen zur Bildung eines zusammengefügten Netzwerkpakets vereint. Nach seiner Bildung wird das zusammengefügte Netzwerkpaket zum entsprechenden Ziel übertragen. Sind zum Beispiel wie in 6 dargestellt zwei Pakete aus den Quellen 1 und 2 für den Prozessor 5 bestimmt, so könnten die beiden Pakete in Prozessor/Router 3 vereinigt und dann als größeres kombiniertes Netzwerkpaket von 3 nach 4 nach 5 übertragen werden.
  • 8 ist ein Flussdiagramm, das gemäß einer Ausführungsform ein Verfahren 520 zur Verbindung von Kohärenzprotokollmeldungen in einem im Verarbeitungsblock 510 in 7 identifizierten Netzwerkpaket darstellt. Im Verarbeitungsblock 522 wird ein Zeiger für jedes der identifizierten Netzwerkpakete gesetzt, zum Beispiel von der Steuereinheit 262, wie in 4 dargestellt. Im Verarbeitungsblock 524 wird die Zeigertabelle aktualisiert, so dass das zusammengefügte Netzwerkpaket auf die mindestens zwei identifizierten Netzwerkpakete weist. Im Verarbeitungsblock 526 werden die Kohärenzprotokollmeldungen im zusammengefügten Netzwerkpaket gemäß der Zeigertabelle gespeichert.
  • 9 ist ein Flussdiagramm, das gemäß einer Ausführungsform ein Verfahren 530 zur Verbindung von Kohärenzprotokollmeldungen zu einem zusammengefügten Netzwerkpaket im Verarbeitungsblock 510 in 7 darstellt. Im Verarbeitungsblock 532 werden die identifizierten Netzwerkpakete des Verarbeitungsblocks 502 zum Beispiel wie in 4 dargestellt in einem Mischpuffer gespeichert. Im Verarbeitungsblock 534 wird ein zusammengefügtes Netzwerkpaket aus den in den identifizierten Netzwerkpaketen enthaltenen Kohärenzprotokollmeldungen gebildet, bevor das zusammengefügte Netzwerkpaket einem Ausgangs anschluss zugewiesen wird. In Verarbeitungsblock 536 werden die identifizierten Netzwerkpakete abgelegt.
  • 10 ist ein Blockdiagramm, das verschiedene Darstellungen oder Formate zur Simulation, Emulation und Herstellung eines die offenbarten Techniken anwendenden Designs darstellt. Daten, die ein Design repräsentieren, können das Design auf eine Reihe von Arten repräsentieren. Zum einen kann – wie es in Simulationen nützlich ist – die Hardware mittels einer Hardware-Beschreibungssprache oder einer anderen funktionellen Beschreibungssprache dargestellt werden, die im Wesentlichen ein computerisiertes Modell dafür liefert, wie die Hardware erwartungsgemäß funktioniert. Das Hardware-Modell 610 kann in einem Speichermedium 600, wie einem Computerspeicher, gespeichert werden, so dass das Modell mittels Simulationssoftware 620 simuliert werden kann, wobei eine bestimmte Testsuite 630 auf das Hardware-Modell angewendet wird, um zu ermitteln, ob es tatsächlich wie beabsichtigt funktioniert. In manchen Ausführungsformen wird die Simulationssoftware nicht im Medium aufgezeichnet, erfasst oder darin enthalten.
  • Bei allen Repräsentationen des Designs können die Daten in jeglicher Form von maschinell lesbarem Medium gespeichert werden. Eine optische oder elektrische Welle 660, die moduliert oder auf sonstige Weise zum Transport derartiger Information erzeugt wird, ein Speicher 650 oder ein magnetischer oder optischer Speicher 640 wie ein Datenträger können ein derartiges maschinell lesbares Medium darstellen. Jedes dieser Medien kann die Designinformationen tragen. Der Ausdruck „tragen" (z. B. ein maschinell lesbares Medium, das Informationen trägt) deckt somit die auf einer Speichereinrichtung gespeicherte verschlüsselte oder in oder auf einer Trägerwelle modulierte Information ab. Der Bit-Satz, der das Design oder eine bestimmte Eigenschaft des Designs beschreibt, stellt (eingebettet in ein maschinell lesbares Mediums, wie ein Träger- oder Speichermedium) einen Gegenstand dar, der in sich geschlossen ist oder von anderen für weiteres Design oder Fertigung verwendet werden kann.
  • Alternative Ausführungsformen
  • Es ist zu verstehen, dass für andere Ausführungsformen eine unterschiedliche Systemkonfiguration verwendet werden kann. Während das System 100 zum Beispiel ein gemeinsam genutztes Multiprozessorsystem beinhaltet, können andere Systemkonfiguration aus der Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern in verschiedenen Ausführungsformen Nutzen ziehen. Weitere andere Systemarten oder unterschiedliche Arten von Computersystemen wie zum Beispiel ein Server, ein Arbeitplatzrechner, ein Desktop-Computersystem, ein Spielsystem, ein eingebettetes Computersystem, ein Blade-Server usw. können in anderen Ausführungsformen eingesetzt werden.
  • Nach der Offenbarung von Ausführungsformen und der besten Ausführungsform, können Modifikationen und Variationen an den offenbarten Ausführungsformen vorgenommen werden, diesen Rahmen der Ausführungsformen der Erfindung, wie sie in den nachfolgenden Ansprüchen definiert ist, fallen.
  • Zusammenfassung
  • Ein Verfahren und eine Vorrichtung zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern. In einer Ausführungsform umfasst das Verfahren das Durchsuchen von mindestens einem Eingabepuffer zur Identifizierung von mindestens zwei Netzwerkpaketen, die Kohärenzprotokollmeldungen enthalten und auf das gleiche Ziel gerichtet sind, jedoch aus verschiedenen Quellen stammen. In einer Ausführungsformen werden in den Netzwerkpaketen befindliche Kohärenzprotokollmeldungen in einem gemeinsamen Netzwerkpaket zusammengefügt. Nach der Zusammenführung wird das zusammengefügte Netzwerkpaket zum gleichen bzw. gemeinsamen Ziel übertragen. In einer Ausführungsform verringert sich durch das Zusammenfügen von mehreren Netzwerkpaketen (die jeweils eine einzige logische Kohärenzmeldung enthalten) zu einem größeren Netzwerkpaket der feste Overhead beim Senden eines Pakets, das eine einzige Kohärenzmeldung enthält, im Vergleich zu einem größeren zusammengefügten Netzwerkpaket, um die Bandbreite besser auszunutzen. Weitere Ausführungsformen wurden beschrieben und beansprucht.

Claims (30)

  1. Verfahren das Folgendes umfaßt: Durchsuchen mindestens eines Eingabepuffers zur Identifizierung von mindestens zwei Netzwerkpaketen mit unterschiedlicher Quelle und einem übereinstimmenden Ziel, wobei jedes Netzwerkpaket eine einzige Kohärenzprotokollmeldung beinhaltet, Verbinden der in den identifizierten Netzwerkpaketen befindlichen Kohärenzprotokollmeldungen in einem zusammengefügten Netzwerkpaket; und Übertragen des zusammengefügten Netzwerkpakets zum übereinstimmenden Ziel.
  2. Verfahren nach Anspruch 1, wobei die Netzwerkpakete in einem Bündel von einem Erzeuger zu einem Verbraucher entsprechend einem stabilen Erzeuger-Verbraucher-Gemeinschaftsmuster geleitet werden.
  3. Verfahren nach Anspruch 1, wobei die identifzierten Netzwerkpakete für den gleichen Prozessor bestimmt sind.
  4. Verfahren nach Anspruch 1, wobei das Verbinden Folgendes umfasst Setzen eines Zeigers auf jedes der identifzierten Netzwerkpakete, Aktualisieren einer Zeigertabelle, wobei das zusammengefügte Netzwerkpaket auf die mindestens zwei identifizierten Netzwerkpakete weist, und Speichern der Kohärenzprotokollmeldungen im zusammengefügten Netzwerkpaket gemäß der Zeigertabelle, bevor das zusammengefügte Netzwerkpaket zu einem Ausgangsanschluss geleitet wird.
  5. Verfahren nach Anspruch 1, das weiterhin Folgendes umfasst: Ablegen der identifizierten Netzwerkpakete.
  6. Verfahren nach Anspruch 1, wobei das Durchsuchen weiterhin Folgendes umfasst: Suchen nach einem zentralen Puffer zur Erfassung von aus verschiedenen Quellen stammenden Netzwerkpaketen, die auf das gleiche Ziel gerichtet sind, und Identifizieren erfasster Netzwerkpakete, die eine einzige Kohärenzprotokollmeldung enthalten.
  7. Verfahren nach Anspruch 1, wobei das Verbinden weiterhin Folgendes umfasst: Speichern der identifizierten Netzwerkpakete in einem Mischpuffer; Bilden des zusammengefügten Netzwerkpakets aus den Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen, bevor das zusammengefügte Netzwerkpaket einem Ausgangsanschluss zugewiesen wird, und Ablegen der identifizierten Netzwerkpakete.
  8. Verfahren nach Anspruch 1, wobei das Durchsuchen weiterhin Folgendes umfasst: Speichern erfasster Netzwerkpakete, die eine einzige Kohärenzprotokollmeldung erhalten, in einem Mischpuffer und Durchsuchen des Mischpuffers zur Identifizierung von mindestens zwei Netzwerkpaketen mit dem gleichen Ziel.
  9. Verfahren nach Anspruch 1, wobei das Verbinden der Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen in einem zusammengefügten Netzwerkpaket während eines Mischpipelinezustands durchgeführt wird.
  10. Verfahren nach Anspruch 1, wobei eine Kohärenzprotokollmeldung in einem Netzwerkpaket eine Cache-Fehltrefferanforderung oder eine Cache-Fehltrefferantwort enthält.
  11. Verfahren umfassend: Speichern erfasster Netzwerkpakete, die eine Kohärenzprotokollmeldung enthalten, in einem Mischpuffer, Durchsuchen des Mischpuffers zur Identifizierung von mindestens zwei Netzwerkpaketen mit unterschiedlicher Quelle und einem übereinstimmenden Ziel und Bilden eines zusammengefügten Netzwerkpakets aus den Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen.
  12. Verfahren nach Anspruch 11, wobei das zusammengefügte Netzwerkpaket gebildet wird, bevor das zusammengefügte Netzwerkpaket einem Ausgangsanschluss zugewiesen wird.
  13. Verfahren nach Anspruch 11, wobei das Bilden des zusammengefügten Netzwerkpakets Folgendes umfasst: Setzen eines Zeigers auf jedes der identifizierten Netzwerkpakete; Aktualisieren einer Zeigertabelle, wobei das zusammengefügte Netzwerkpaket auf die mindestens zwei identifizierten Netzwerkpakete weist, und Speichern der Kohärenzprotokollmeldungen im zusammengefügten Netzwerkpaket gemäß der Zeigertabelle, bevor das zusammengefügte Netzwerkpaket zu einem Ausgangsanschluss geleitet wird.
  14. Verfahren nach Anspruch 11, das weiterhin das Ablegen des zusammengefügten Netzwerkpakets umfasst.
  15. Verfahren nach Anspruch 11, wobei das Speichern weiterhin Folgendes umfasst: Suchen nach einem zentralen Puffer zur Erfassung von Netzwerkpaketen, die eine einzige Kohärenzprotokollmeldung enthalten.
  16. Vorrichtung, die Folgendes umfasst: mindestens einen Eingabepuffer mit einer Anzahl von Leseanschlüssen und eine Steuereinrichtung zum Durchsuchen des mindestens einen Eingabepuffers über einen Leseanschluss zum Identifizieren von mindestens zwei Netzwerkpaketen mit unterschiedlichen Quellen und einem übereinstimmenden Ziel, wobei jedes Netzwerkpaket eine Kohärenzprotokollmeldung enthält, und zum Verbinden der Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen zu einem zusammengefügten Netzwerkpaket.
  17. Vorrichtung nach Anspruch 16, bei welcher der mindestens eine Eingabepuffer Folgendes umfasst: einen zentralen Puffer, wobei die Steuereinrichtung zum Durchsuchen des zentralen Puffers über einen Leseanschluss zum Erfassen von Netzwerkpaketen aus verschiedenen Quellen, die auf das gleiche Ziel gerichtet sind, und zum Identifizieren erfasster Netzwerkpakete, die eine Kohärenzprotokollmeldung enthalten.
  18. Vorrichtung nach Anspruch 17, die weiterhin Folgendes umfasst: einen Mischpuffer, wobei die Steuereinrichtung zum Speichern erfasster Netzwerkpakete eine Kohärenzprotokollmeldung in diesem Mischpuffer enthalten, zum Durchsuchen des Mischpuffers zur Identifizierung der mindestens zwei Netzwerkpakete mit unterschiedlicher Quelle und übereinstimmenden Ziel dient.
  19. Vorrichtung nach Anspruch 17, wobei die Steuereinrichtung dazu dient, das zusammengefügte Netzwerkpaket zu bilden, bevor das zusammengefügte Netzwerkpaket einem Ausgangsanschluss zugewiesen wird.
  20. Vorrichtung nach Anspruch 17, wobei die Vorrichtung einen Verbindungsrouter eines Chip-Multiprozessors umfasst.
  21. Vorrichtung nach Anspruch 17, die weiterhin Folgendes umfasst: eine an mindestens einen Eingabepuffer gekoppelte Kreuzschiene, wobei die Kreuzschiene dazu dient, das zusammengefügte Netzwerkpaket zu einem Ausgangsanschluss weiterzuleiten.
  22. Vorrichtung nach Anspruch 21, die weiterhin Folgendes umfasst: Eingangsanschlussentscheidungslogik zum Nominieren von mindestens einem Netzwerkpaket in dem Eingangspuffer zur Ausgangsanschlussentscheidung und eine Ausgangsanschlussentscheidungslogik zur Annahme von Paketnominierungen von der Eingangsanschlussentscheidungslogik und zur Auswahl eines Netzwerkpakets für den Versand.
  23. Vorrichtung nach Anspruch 16, wobei die Steuereinrichtung dazu dient, die Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen in einem zusammengefügten Netzwerkpaket während eines Mischpipelinezustands zu verbinden.
  24. Vorrichtung nach Anspruch 21, die weiterhin Folgendes umfasst: vier 2D-Torus-Eingangsanschlüsse und vier 2D-Torus-Ausgangsanschlüsse.
  25. Verfahren nach Anspruch 16, wobei der Mechanismus weiterhin Folgendes umfasst: einen an eine Steuereinrichtung gekoppelten Prozessorkern.
  26. System, das Folgendes umfasst: Netzwerk mit einer Anzahl an Prozessorknoten, wobei jeder Prozessorknoten einen Verbindungsrouter aufweist, umfassend: mindestens einen Eingabepuffer mit einer Anzahl von Leseanschlüssen und eine Steuereinrichtung zum Durchsuchen von mindestens einem Eingabepuffer über einen Leseanschluss zum Identifizieren von mindestens zwei Netzwerkpaketen mit unterschiedlicher Quelle und übereinstimmenden Ziel, wobei jedes Netzwerkpaket eine Kohärenzprotokollmeldung enthält, und zum Verbinden der Kohärenzprotokollmeldungen in den identifizierten Netzwerkpaketen zu einem zusammengefügten Netzwerkpaket.
  27. System nach Anspruch 26, wobei es sich bei dem System um ein Cache-kohärentes Multiprozessorsystem mit gemeinsamer Speichernutzung handelt.
  28. System nach Anspruch 26, wobei es sich bei dem Netzwerk um ein zweidimensionales vermaschtes Netzwerk handelt.
  29. System nach Anspruch 26, wobei der mindestens eine Eingabepuffer Folgendes umfasst: einen zentralen Puffer, wobei die Steuereinrichtung zum Durchsuchen des zentralen Puffers zum Erfassen von Netzwerkpaketen aus verschiedenen Quellen, die auf das gleiche Ziel gerichtet sind; und zur Identifizierung erfasster Netzwerkpakete, die eine Kohärenzprotokollmeldung enthalten.
  30. System nach Anspruch 26, das weiterhin Folgendes umfasst: einen Mischpuffer, wobei die Steuereinrichtung zum Speichern erfasster Netzwerkpakete, die eine Kohärenzprotokollmeldung enthalten, in dem Mischpuffer dient, sowie zum Durchsuchen des Mischpuffer zur Identifizierung der mindestens zwei Netzwerkpakete mit dem gleichen Ziel.
DE112005001556T 2004-06-30 2005-06-24 Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern Ceased DE112005001556T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/881,845 2004-06-30
US10/881,845 US20060047849A1 (en) 2004-06-30 2004-06-30 Apparatus and method for packet coalescing within interconnection network routers
PCT/US2005/022446 WO2006012284A2 (en) 2004-06-30 2005-06-24 An apparatus and method for packet coalescing within interconnection network routers

Publications (1)

Publication Number Publication Date
DE112005001556T5 true DE112005001556T5 (de) 2007-05-03

Family

ID=35786670

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001556T Ceased DE112005001556T5 (de) 2004-06-30 2005-06-24 Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern

Country Status (5)

Country Link
US (1) US20060047849A1 (de)
JP (1) JP2008504609A (de)
CN (1) CN1997987A (de)
DE (1) DE112005001556T5 (de)
WO (1) WO2006012284A2 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552077B1 (en) * 2002-06-26 2009-06-23 Trading Technologies International, Inc. System and method for coalescing market data at a network device
US7783558B1 (en) 2004-12-28 2010-08-24 Trading Technologies International, Inc. System and method for providing market updates in an electronic trading environment
US7437587B2 (en) * 2005-01-21 2008-10-14 Hewlett-Packard Development Company, L.P. Method and system for updating a value of a slow register to a value of a fast register
US10026122B2 (en) 2006-12-29 2018-07-17 Trading Technologies International, Inc. System and method for controlled market data delivery in an electronic trading environment
US8108545B2 (en) 2007-08-27 2012-01-31 International Business Machines Corporation Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7840703B2 (en) * 2007-08-27 2010-11-23 International Business Machines Corporation System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture
US8140731B2 (en) 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
US7822889B2 (en) * 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US7904590B2 (en) 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US7769891B2 (en) * 2007-08-27 2010-08-03 International Business Machines Corporation System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US7793158B2 (en) * 2007-08-27 2010-09-07 International Business Machines Corporation Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US7958183B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US7769892B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US7809970B2 (en) * 2007-08-27 2010-10-05 International Business Machines Corporation System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US7958182B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US7827428B2 (en) 2007-08-31 2010-11-02 International Business Machines Corporation System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7921316B2 (en) 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7779148B2 (en) 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US8077602B2 (en) * 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
US20090198956A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
US8250336B2 (en) * 2008-02-25 2012-08-21 International Business Machines Corporation Method, system and computer program product for storing external device result data
JP4679601B2 (ja) * 2008-04-16 2011-04-27 エヌイーシーコンピュータテクノ株式会社 パケット制御回路、パケット処理装置、および、パケット処理方法
US9361165B2 (en) * 2009-12-03 2016-06-07 International Business Machines Corporation Automated merger of logically associated messages in a message queue
US8417778B2 (en) 2009-12-17 2013-04-09 International Business Machines Corporation Collective acceleration unit tree flow control and retransmit
CN101854298A (zh) * 2010-05-19 2010-10-06 中国农业银行股份有限公司 报文的自动链接方法、账务修正方法及系统
JP2012155650A (ja) 2011-01-28 2012-08-16 Toshiba Corp ルータ及びメニーコアシステム
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US9244796B2 (en) * 2011-11-15 2016-01-26 International Business Machines Corporation Diagnostic heartbeat throttling
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
WO2013119241A1 (en) * 2012-02-09 2013-08-15 Intel Corporation Modular decoupled crossbar for on-chip router
US11138525B2 (en) 2012-12-10 2021-10-05 Trading Technologies International, Inc. Distribution of market data based on price level transitions
US9430239B2 (en) * 2013-03-12 2016-08-30 Qualcomm Incorporated Configurable multicore network processor
US20140281678A1 (en) * 2013-03-14 2014-09-18 Kabushiki Kaisha Toshiba Memory controller and memory system
US9294419B2 (en) 2013-06-26 2016-03-22 Intel Corporation Scalable multi-layer 2D-mesh routers
US10212022B2 (en) 2013-09-13 2019-02-19 Microsoft Technology Licensing, Llc Enhanced network virtualization using metadata in encapsulation header
JP6682837B2 (ja) 2015-12-10 2020-04-15 富士通株式会社 通信装置及び通信システム
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
TWI650037B (zh) * 2017-12-05 2019-02-01 財團法人工業技術研究院 一種集中式無線存取網路控制方法
US20230102614A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Grouping data packets at a modem

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
AU5288700A (en) * 1999-05-24 2000-12-12 B.R. Badrinath System and method for network packet reduction
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
GB2372679A (en) * 2001-02-27 2002-08-28 At & T Lab Cambridge Ltd Network Bridge and Network
US7430623B2 (en) * 2003-02-08 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for buffering data received from a network

Also Published As

Publication number Publication date
WO2006012284A3 (en) 2007-01-25
US20060047849A1 (en) 2006-03-02
CN1997987A (zh) 2007-07-11
JP2008504609A (ja) 2008-02-14
WO2006012284A2 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
DE112005001556T5 (de) Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern
DE102018214776A1 (de) Technologien für die Verwaltung von Netz-Statistik-Zählern
DE112011101321B4 (de) Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist
US7738443B2 (en) Asynchronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited
US10560544B2 (en) Data caching in a collaborative file sharing system
DE112011102415B4 (de) Registerzugriff in einer verteilten virtuellen Brückenumgebung
DE102020201834A1 (de) Technologien für netzvorrichtungslastausgleichseinrichtungen für beschleunigte funktionen-als-dienst
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE102019130686A1 (de) Technologien zur bereitstellung dynamischer auswahl von edge- und lokalen beschleunigerressourcen
DE112007001529T5 (de) Flexibles und erweiterbares Receive Side Scaling
DE112012004551T5 (de) Mehrkernverknüpfung in einem Netzprozessor
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
US9990403B2 (en) System and a method for reasoning and running continuous queries over data streams
DE112016006065T5 (de) Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen
US20150095613A1 (en) Asset management device and method in a hardware platform
CN109271359A (zh) 日志信息处理方法、装置、电子设备及可读存储介质
DE102022105933A1 (de) Lenkung von warteschlangen nach priorität durch die nic und frequenzabstimmung der prozessoreinheit basierend auf paketflussanalysen
CN111312352A (zh) 一种基于区块链的数据处理方法、装置、设备和介质
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
DE102022126611A1 (de) Service-mesh-auslagerung an netzwerkvorrichtungen
DE112013000599T5 (de) Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs
Bhowmik et al. Distributed control plane for software-defined networks: A case study using event-based middleware

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 13/42 AFI20050624BHDE

8131 Rejection