-
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 (231–234)
und die Interprozessor-Ausgangsanschlüsse (251–254)
(„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 241–248. Der
Router 200 stellt typischerweise die Pakete in den Puffern 241–248 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 241–248 aus
und leitet diese zu den entsprechenden Ausgangsanschlüssen 250 weiter.
Während
die Pakete in den Eingabepuffern 241–248 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
-
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 241–248 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.